Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA If Anweisung

Forumthread: 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
Anzeige

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
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige