Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1392to1396
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

Msg-box nach Schleifen, erbitte eure Hilfe

Msg-box nach Schleifen, erbitte eure Hilfe
01.12.2014 16:46:09
Michael
Hallo Leute,
noch immer schleppe ich ein Problem mit mir rum, dass ich trotz Internet-Durchwühlung nicht lösen kann.
Datei: https://www.herber.de/bbs/user/94132.xls
Ein klick auf das Datum öffet eine PDF-Datei.
Der Pfad kann an 6 Steleln sein, diese Sheet "aGE".
Der PDF-Name besteht aus 2 Teilen. der erste Teil kann 8 verscheidene Zeichen haben, der zweite auch. anlle möglcien Zeichen trägt man an entsprechender Stelle ein und die PDF wird geöffnet, soweit vorhanden. Möglcih macht es die 3-fach-Schleifenprogrammierung, die alle Kombinationen durchläuft, bis eine passt.
Der Code sieht so aus und funktioneirt einwandfrei:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'öffnet das Festern "Auswahl", wenn man auf ein Datum klickt

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lngR As Long
Dim lngC As Long
lngR = ActiveCell.Row
lngC = ActiveCell.Column
If IsDate(Range(Cells(lngR, lngC), Cells(lngR, lngC))) = True Then
Call aufmachen
End If
End Sub
Private Sub aufmachen()
Dim lngR As Long
Dim lngC As Long
Dim PfadCol As Integer
Dim Teil_1Col As Integer
Dim Teil_2Col As Integer
lngR = ActiveCell.Row
lngC = ActiveCell.Column
For PfadCol = 4 To 9
For Teil_1Col = 4 To 11
For Teil_2Col = 4 To 11
Pfad = Sheets("aGE").Cells(PfadCol, 3).Value
Teil_1 = Sheets("aGE").Cells(12, Teil_1Col).Value
Teil_2 = Sheets("aGE").Cells(13, Teil_2Col).Value
auf_1 = "" & Pfad & "\" & Teil_1 & Teil_2 & ".pdf"
If Dir(auf_1)  "" Then
ShellExecute 0, "open", auf_1, "", "", SHOWMAXIMIZED
Else
auf_2 = "" & Pfad & "\" & Teil_2 & Teil_1 & ".pdf"
If Dir(auf_2)  "" Then
ShellExecute 0, "open", auf_2, "", "", SHOWMAXIMIZED
End If
End If
Next Teil_2Col
Next Teil_1Col
Next PfadCol
End Sub
Aber was ist, wenn der Pfad "auf_1" UND der Pfad "auf_2" kein Ergebnis liefern.
Dann soll eine MsgBox mit entsprechender MEldung aufgehen.
Als ich noch keine Schleifen hatte, konnte ich einfach folgendes schreiben:
else
msgbox "Fehler"
Leider funktioniert das nicht mehr, da sonst immer die
Fehlermedlung kommt oder nach jedem Variablenwechsel angezeigt wird.
Meine Frage an euch: Wie muss ich den Code ändern, damit nur 1x
eine Fehlermedlung angeezigt wird, wenn beide Pfade (auf_1 UND auf_2)
kein Ergebnis (PDF-öffnen) haben?
Schon jetzt ein Dank!
Michael

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Msg-box nach Schleifen, erbitte eure Hilfe
01.12.2014 16:51:17
yummi
Hallo Michael,
spendier dir eine zusätzliche Variable vom Typ boolean. Vor der Schleife auf false initialisieren. Wenn du in der Schleife einen Treffer hast setzt du sie auf true.
Nach der Schleife fragst du die Variable ab und gibst bei Bedarf deine MsgBox aus.
Gruß
yummi

auf false initialisieren ?
01.12.2014 17:02:37
Matthias
Hallo yummi
Vor der Schleife auf false initialisieren ?
Eine boolsche Variable ist zu Beginn immer False ;-)
Gruß Matthias

AW: auf false initialisieren ?
01.12.2014 19:47:18
yummi
Hallo Matthias,
da geb ich dir recht, man kann es sich in dem Fall bequem machen und das initialisieren weglassen. Aus sicherheitstechnischer Sicht übernehme ich die Initialisierung trotzdem lieber selber.
Gruß
yummi

Anzeige
Ok ... akzeptiert ;-) owT
01.12.2014 20:10:43
Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige