Veröffentlicht 24. Mai 200421 j 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 ... ...
24. Mai 200421 j Hallo, ich glaube nicht, dass das geht. Was für einen Datentype sollte denn dann die Variable Abfrage haben? Frank
24. Mai 200421 j 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.
24. Mai 200421 j 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...
24. Mai 200421 j 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
24. Mai 200421 j oh also wenn du dir ne ganze Abfrage so aufbauen lassen willst wirds schwierig... weiß nicht obs ne Funktion gibt, mit der man Coding Interpretieren kann...
24. Mai 200421 j @ 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 ... ...
24. Mai 200421 j @ 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...
24. Mai 200421 j Soll der Benutzer SQL oder VBA schreiben? Frank also ohne jetzt genaueres zu wissen vermute ich mal VBA
24. Mai 200421 j @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?
24. Mai 200421 j 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...
24. Mai 200421 j 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...
24. Mai 200421 j 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.....
24. Mai 200421 j 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...
24. Mai 200421 j Wow!!! :uli es funktioniert soweit perfekt!! thx so jetzt erstelle ich mal alles und wenn es dan funktioniert dan bin ich wirklich happy
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.