Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1800to1804
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA If Anweisung

VBA If Anweisung
29.12.2020 14:43:48
Florian
Hallo zusammen,
erstmal noch frohe und besinnliche Feiertage an alle :)
Ich bin hier eher der passive User, aber heute habe ich mal eine Frage bei der ich direkt eure Hilfe brauche. Irgendwie springt mein Programm immer in eine If rein, obwohl die Bedingung eigentlich nicht erfüllt ist. Der Else Zweig sollte laufen, wird aber daher nicht ausgeführt.
Kurz zur Erklärung.
Es werden beliebige Files aus einem Ordner geladen und in "PicList" als Ort abgelegt. Aus dieser Liste ziehe ich nun die Variable VarZF. Das ist ein String und stellt die Endung einer Pfadangabe dar, beispielsweise "png".
Aufgrund dieses "Schalters" soll entweder der If Strang angesteuert werden, oder der Else Zweig.
Falls "VarZF" eine der genannten Video Endungen enthält, dann soll einfach ein Bild als Dummy eingeblendet werden, andernfalls das Bild. Jedoch überfährt er mir hier immer die If Auswahl. An was kann das liegen? Hat hier jemand bitte einen Rat?
Hier mal der Code:
VarZF = Right(PicList(lLoop), 3)
If VarZF = "MP4" Or "MOV" Or "AVI" Or "MPEG" Or "MPG" Then
Set sShape = Sheets("Bilder").Shapes.AddPicture("S:\test\Video.png", msoFalse, msoCTrue, Rng.Left, Rng.Top, Rng.Width, Rng.Height)
Else
Set sShape = Sheets("Bilder").Shapes.AddPicture(PicList(lLoop), msoFalse, msoCTrue, Rng.Left, Rng.Top, Rng.Width, Rng.Height)
End If
VG
Florian

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA If Anweisung
29.12.2020 15:46:11
volti
Hallo Florian,
Du wendest die IF-Anweisung nicht richtig an. Es muss so heißen:
If VarZF = "MP4" Or VarZF = "MOV" Or VarZF = "AVI" Or VarZF = "MPEG" Or VarZF = "MPG" Then
Würde Dir aber empfehlen, alternativ die SELECT-Anweisung zu nehmen.
Und als Hinweis: MPEG hat vier Buchstaben und würde mit diesem Code nicht erkannt.
Code:
[Cc]

Select Case UCase$(Right(PicList(lLoop), 3)) Case "MP4", "MOV", "AVI", "PEG", "MPG" Set sShape = Sheets("Bilder").Shapes.AddPicture("S:\test\Video.png", msoFalse, msoCTrue, _ Rng.Left, Rng.Top, Rng.Width, Rng.Height) Case Else Set sShape = Sheets("Bilder").Shapes.AddPicture(PicList(lLoop), msoFalse, msoCTrue, _ Rng.Left, Rng.Top, Rng.Width, Rng.Height) End Select

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: VBA If Anweisung
29.12.2020 15:50:38
Florian
Hallo Karl-Heinz,
eigentlich klar... Ich schäme mich grad :D Vielen Dank auch für deine alternative Lösung. Ich denke ich mach die Case Abfrage rein, sieht viel eleganter aus.
Gerade eben habe ich es übrigens so gelöst:

Set Rng = Sheets("Bilder").Cells(xRowIndex, xColIndex)
VarZF = Right(PicList(lLoop), 3)
If InStr(VarZF, "MP4") > 0 Or InStr(VarZF, "MOV") > 0 Or InStr(VarZF, "AVI") > 0 Or  _
InStr(VarZF, "MPEG") > 0 Or InStr(VarZF, "MPG") > 0 Then
Set sShape = Sheets("Bilder").Shapes.AddPicture("S:\test\Video.png", msoFalse,  _
msoCTrue, Rng.Left, Rng.Top, Rng.Width, Rng.Height)
Else
Set sShape = Sheets("Bilder").Shapes.AddPicture(PicList(lLoop), msoFalse,  _
msoCTrue, Rng.Left, Rng.Top, Rng.Width, Rng.Height)
End If

Vielen Lieben Dank nochmal!!!!!
Anzeige
AW: VBA If Anweisung
29.12.2020 15:56:24
volti
Hi Florian,
hier noch 'ne Alternative 😊
If InStr(1, "MP4,MOV,AVI,MPEG,MPG,", varFZ & ",", vbTextCompare) > 0 Then
VG KH
AW: VBA If Anweisung
30.12.2020 18:13:49
Luschi
Hallo Karl-Heinz,
ich verwende immer diese Variante:
If InStr(1, "*MP4*MOV*AVI*MPEG*MPG*", "*" & varFZ & "*", vbTextCompare) > 0 Then
Gruß von Luschi
aus klein-Paris
AW: VBA If Anweisung
30.12.2020 18:58:01
volti
Interessant Luschi,
danke für diese Variante. Sieht besser aus, als das mit dem Komma.
Ich habe sonst auch je vorne noch ein Komma, mir das bei diesem Code aber gespart, weil kein Term innerhalb eines anderen vorkommen kann.
Ansonsten sieht mir aber wie das dasselbe in grün aus, oder hat Deine Variante sonst noch einen Vorteil?
Gruß KH
Anzeige

235 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige