Zum Inhalt springen

VBA ==> If Abfrage in Variable


Mr. D

Empfohlene Beiträge

Hi,

also ich hab ein kleines problem ;)

also ich hab ne If Abfrage die im moment auch funktioniert


 If zelle.Value >= "208444" And zelle.Value <= "208530" And Not zelle.Value = "208470" And Not zelle.Value = "208471" And Not zelle.Value = 208472 Then

So jetzt möchte ich aber die Anweisung:

zelle.Value >= "208444" And zelle.Value <= "208530" And Not zelle.Value = "208470" And Not zelle.Value = "208471" And Not zelle.Value = 208472

in einer Variable haben also:

Abfrage =  zelle.Value >= "208444" And zelle.Value <= "208530" And Not zelle.Value = "208470" And Not zelle.Value = "208471" And Not zelle.Value = 208472

so das funktuioniert aber nicht....er mekert rum "Objekt nicht definiert" woran kann das liegen? Also ganz am Schluss sollte es so aussehen:
 

Abfrage=zelle.Value >= "208444" And zelle.Value <= "208530" And Not zelle.Value = "208470" And Not zelle.Value = "208471" And Not zelle.Value = 208472 

...

...

If Abfrage Then

...

...


Link zu diesem Kommentar
Auf anderen Seiten teilen

hmm das weiß ich no net ganz sogenau...vielleicht integer oder so,....

naja hintergrund dessen ist das die Abfrage später vom Benutzer selbst verändert werden kann ohne das dieser in den Quellcode rein muss.

Also das es ne maske gibt die die Variable ausliest -> Benutzer kann änderungen machen -> variable einliest und dann halt das was er benutzer eingegeben hat dan abfrägt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hmm das weiß ich no net ganz sogenau...vielleicht integer oder so,....

naja hintergrund dessen ist das die Abfrage später vom Benutzer selbst verändert werden kann ohne das dieser in den Quellcode rein muss.

Also das es ne maske gibt die die Variable ausliest -> Benutzer kann änderungen machen -> variable einliest und dann halt das was er benutzer eingegeben hat dan abfrägt.

das ganze geht sicherlich, aber nicht so wie du dir das vorstellst...

beschreib doch mal etwas näher was der User alles auswählen können soll...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok ich versuchs mal zu erklären:

So jetzt gibt es ja schon die Abfrage irgendwo im Script, diese Abfrage soll "rausgeholt" werden und dem benutzer in einer Maske angezeigt werden. Danach kann der Benutzer(nachdem er die entsprechende abfrage gewählt hat, weil es mehrere sind) diese editieren, heißt er kann was hinzufügen zb. am schluss "and not zelle.value=999" oder was weglöschen. wenn er fertig ist soll die editierte abfrage gespeichert werden. Dan wenn er sein Script/Makro ausführt kommt irgendwo im script die abfrage die dan so ausgeführt werden soll wie der benutzer das voher verändert hat!

ich hoffe das es jetzt verständlicher ist ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ Mr. D

Bevor Du die Variable "Abfrage" verwendest musst Du sie deklarieren.


Dim Abfrage as Boolean

Abfrage=(zelle.Value >= "208444") And (zelle.Value <= "208530") And Not (zelle.Value = "208470") And Not (zelle.Value = "208471") And Not (zelle.Value = 208472) 

...

...

If Abfrage Then

...

...

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ Mr. D

Bevor Du die Variable "Abfrage" verwendest musst Du sie deklarieren.


Dim Abfrage as Boolean

Abfrage=(zelle.Value >= "208444") And (zelle.Value <= "208530") And Not (zelle.Value = "208470") And Not (zelle.Value = "208471") And Not (zelle.Value = 208472) 

...

...

If Abfrage Then

...

...

ich glaube er hat es anders gemeint... also dass er die Abfrage in dem String speichert und dann ausführen kann...

Link zu diesem Kommentar
Auf anderen Seiten teilen

@LoneGunman

ja hab ich aber als Integer *g* werds mal mit boolean versuchen sobald ich kann

@palvoelgyi

hmm eigentlich gar keine bzw sollte ohne datenbank funktionieren....man müsste den "text" doch auch in ne variable schreiben lassen können oder?

Link zu diesem Kommentar
Auf anderen Seiten teilen

hmm warum kann ich den jetzt nich editieren...naja egal...

sorry hab mich falsch ausgedrückt bei meinem letzten post *zeigt nach oben*

@palvoelgyi

meinst du als Datenbank oder wie er den Text reinschreiben soll bzw die Änderung? also das dan in vba...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sowas lässt sich über VBScript machen. Ist zwar eine üble Lösung, sollte aber funktionieren:


Dim code As String

Dim myScript As Object


Set myScript = CreateObject("ScriptControl")


code = "Function Test(meinValue)" & vbCrLf & _

  "If meinValue > 2000 Then" & vbCrLf & _

    "test = True" & vbCrLf & _

  "Else" & vbCrLf & _

    "test = False" & vbCrLf & _

  "End If" & vbCrLf & _

"End Function"


myScript.Language = "VBScript"

myScript.AddCode code

Debug.Print myScript.Run("Test", 2005)

An der Stelle des script-codes kannst du dann die Bedingung einfügen und den Wert kannst du an die Funktion übergeben und bekommst das Ergebnis zurück. Hoffe das hilft dir weiter...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

also dein script sieht eigentlich ganz gut aus auser das es irgendwie net geht *gg*

nee...ich kriegst in excel nicht zum laufen...er führts zwar aus aber aber er gibt nichts zurück....bzw der "Debug.Print myScript.Run("Test", 2005)" Befehl macht nichts.....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay, du kannst auch folgendes schreiben:


Dim result As Boolean

...

result = myScript.Run("Test", 2005)

Dann steht im result eben das Ergebnis der Bedingung, also ob Wahr oder Falsch. Beim Debug.Print schreibt er das Ergebnis ins Direktfenster der Makro-IDE. Wenn du für 2005 eine kleinere Zahl einsetzt wirst du sehen, das es funzt...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...