PDA

Vollständige Version anzeigen : If ... then ...


Stefan76
06.09.2011, 13:48
Hallo,

ich möchte bei Erfüllen einer IF .. THEN ... Abfrage mehr als nur eine Aufgabe ausführen lassen.
In SAS würde ich mit If..then...DO und END IF alles zwischen DO und END packen können. In VBA kriege ich das nicht hin.
Kennt jemand die Lösung? Vielen Dank

Viele Grüße
Stefan

AKTools
06.09.2011, 14:06
Die Syntax ist folgende...

IF Bedingung Then
.....
ElseIf Bedingung Then
.....
ElseIf Bedingung Then
.....
Else
.....
end if
Du kannst mit ElseFi auch noch weitermachen. Bei zwei ist da nicht Schluß.

Außerdem kannst du bei jeder Bedingung verschiedene Kriterien logisch mit AND oder OR verknüpfen

If Bedingung1 = Wahr AND Bedingung2=FALSCH Then
....
ElseIF Bedingung1 = Wahr OR Bedingung2=FALSCH then
....
Else
....
End If

EarlFred
06.09.2011, 14:07
Hallo Stefan,

die Struktur könnte so aussehen:
If [Bedingung] Then
Tu eine Sache
Tu noch eine andere Sache
usw.
Else
Tu was ganz anderes
Tu nochwas ganz anderes

End If

Grüße
EarlFred

Stefan76
06.09.2011, 14:19
Danke für die Antworten.
Ich glaube else if ist nicht das was ich brauche, denn wenn meine Bedingung erfüllt ist, sollen einfach mehrere Dinge gemacht werden.
Im Grunde genau das, was EarlFred schreibt. Nur macht das VBA nicht. Er hat dann Probleme mit der darüber (darum) liegenden Schleife oder ggf. mit With /End With, d.h. er sagt, "For ohne Next" oder "Without without with" oder so öhnlich :)
Ich vermute, dass die Art meines Zeilenumbruchs innerhalb des Codes nicht sauber ist.

Viele Grüße
Stefan

Hasso
06.09.2011, 14:24
Hallo Stefan,

Mein gerne wiederholter Tipp: Das Hochladen einer Beispieldatei erhöht die Chance auf eine Antwort ungemein!

EarlFred
06.09.2011, 14:25
Hallo Stefan,

jeder Block (z. B. If oder With) hat einen Anfang und ein Ende (das Ende markiert dann End If bzw. End With

d.h. er sagt, "For ohne Next" oder "Without without with" oder so öhnlich
Deine Beschreibung ist sehr ungenau. Bitte die Fehlerbeschreibung richtig abschreiben und am besten mal den Code posten, dann kann Dir geholfen werden.

Grüße
EarlFred

Stefan76
06.09.2011, 15:26
Hallo Hasso und EarlFred,

zum ersten mal seit ich mit VBA "spiele" funktioniert End if...
Soweit ist es also gelöst.
Ich kann die Datei leider nicht einfach posten, weil sie vertrauliche Daten enthält. Der Code allein ohne Datei funktioniert nicht.
Ich baue aus einer großen Datenmenge einen Report indem über diverse Schleifen und Bedingungen Daten zusammensuche und an die richtige Stelle kopiere.

Da die eigentliche Frage gelöst ist, schließe ich den Thread.

Danke für eure Hilfe + die Bitte um Verständnis, dass ich die Daten nicht direkt posten kann.

Viele Grüße
Stefan