Ich habe eine Excel Datei mit VBA Code und es soll folgendes passieren
Beim Öffnen der Execl Datei soll automatisch ein Makro starten das wiederum eine Userform1 zur Anzeige bringt.
Wird die userform1 über X geschlossen wird eine Userform2 zur Anzeige gebracht die 3 Commandbuttons enthält.
Über eine If Abfrage wird abgefragt ob Commandbutton1 gedrückt wurde
Wenn Ja soll eine Sub Prozedur “Bild1“ gestartet werden und die Userform2 soll geschlossen werden.
mit der einer Variablen “Datei“ der Name der aktuellen Excel zugewiesen wird - aber am Ende geändert um eine “ 1 - .jpg“
und als nächstes wird einer Variablen“PfadDatei“ der Pfad der Excel Datei plus der Name der Excel Datei zugewiesen. Ende der Sub
Als nächster Schritt soll mit einer Sub “Prüfen“ überprüft werden ob es eine solche jpg Datei im gleichen Ordner
in dem die Excel Datei sich befindet überhaupt gibt.
Ist sie dort vorhanden soll das Bild angezeigt werden
Ist sie nicht dort vorhanden soll unter "E:\Bilder für Test\" geprüft werden ob sie dort vorhanden ist.
Ist sie dort vorhanden soll das Bild angezeigt werden
Ist sie nicht dort vorhanden soll eine MsgBox angezeigt werden mit der Info., dass die Bild Datei nicht existiert
Nach Schließen der MsgBox soll die Exceldatei (inkl. allem Vba) geschlossen werden
Wird CommandButton2 gedrückt soll wie oben ……
Über eine If Abfrage wird abgefragt ob Commandbutton2 gedrückt wurde
Jetzt soll Sub Prozedur Bild2 gestartet werden, die der Variablen “Datei“ der Name der aktuellen Excel zugewiesen
wird - aber am Ende geändert um eine “ 2 - .jpg“. Der Rest folgt wie oben.
Wird CommandButton3 (= Abbrechen) gedrückt
Soll die Excel Datei geschlossen werden.
Mit dem beigefügten Code klappt auch schon vieles aber eben nicht alles.
Wenn das Makro startet werden Userform 1 und danach Userform2 angezeigt
Bei Auswahl von CommandButton1 (oder 2) wird das zugehörige Bild1 (oder 2) angezeigt wenn es in den Ordnern gefunden wurde, (Klappt!!)
aber UserForm2 wird nicht geschlossen, sondern wird wieder (weiter) angezeigt ?
und wartet auf eine Eingabe?? Ich kann in diesem Zustand nicht zu einer anderen Excel Datei wechseln, erst wenn ich die Userform über X geschlossen habe.
Wenn die jpg Datei nicht gefunden wird, wird mir die MsgBox mit der Info. nicht angezeigt?
Fragen:
Wie bekomme ich die UserForm2 geschlossen und an welcher Stelle muss ich den Unload Befehl (oder was anderes) einfügen,
damit er sich entsprechend auswirkt? Und sie nicht „blockierend“ wirkt“.
Wieso wird mir die Info über die MsgBox nicht angezeigt, wenn die jpg Bilder nicht gefunden wurden?
Danke für jede hilfreiche Antwort.
VG Roman
Private Sub Workbook_Open()
' Position_1
' Teil 1 vom Makro legt fest dass die Excel-Datei auf der rechten Bildschirmhälfte erscheinen soll.
'
Application.Left = 456.4
Application.Width = 550.8
Application.Height = 622
Application.Left = 456.4
Application.Top = 4.6
'
' Tab_verschieben_auf_A1
' Teil 2 vom Makro verschiebt das Tabellenblatt in die linke obere Ecke
'
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 1
UserForm1.Show
UserForm2.Show ' Wenn Userform 1 geschlossen wurde zeige Userform2
' Oeffnen von zugehörigem JPG Bild = Deutschland Karte
Dim Datei As String
Dim PfadDatei As String
If CommandButton1_Click Then
Unload UserForm2
Call Bild1
Call Prüfung
End If
If CommandButton2_Click Then
Unload UserForm2
Call Bild2
Call Prüfung
End If
If CommandButton3_Click Then
Unload UserForm2
Call Ausstieg
End If
' Unload Me hatte ich testweise hier eingefügt
End Sub
'__________________________________________________________________________________
Sub Prüfung() ' Sub Datei_Existenz_PruefungKurz()
If Dir(PfadDatei) > "" Then ' Die Datei existiert
FollowHyperlink PfadDatei ' Die existierende jpg Datei wird aufgerufen = geöffnet
Else ' Die Datei existiert nicht im Ordner der Excel Datei"
PfadDatei = "E:\Bilder für Test\" & Datei ' Pfad und Datei
If Dir(PfadDatei) > "" Then ' Die Datei existiert
FollowHyperlink PfadDatei ' Die existierende jpg Datei wird aufgerufen = geöffnet
Else
MsgBox "Die ausgewählte Datei '" & Datei _
& "' existiert nicht im Ordner dieser Excel Datei", vbCritical
End If
End If
End Sub
'__________________________________________________________________________________
Private Sub Bild1()
'Unload Me ' Userform schließen --- hatte gedacht an der Stelle wäre es richtig
With ThisWorkbook
Datei = Left(.Name, Len(.Name) - 10) & " 1 _ .jpg"
PfadDatei = .Path & "\" & Datei
End With
End Sub
'__________________________________________________________________________________
Private Sub Bild2()
'Unload Me ' Userform schließen --- hatte gedacht an der Stelle wäre es richtig
With ThisWorkbook
Datei = Left(.Name, Len(.Name) - 10) & " 2 _ .jpg"
PfadDatei = .Path & "\" & Datei
End With
End Sub
'__________________________________________________________________________________
Private Sub Ausstieg()
'Unload Me ' Userform schließen --- hatte gedacht an der Stelle wäre es richtig
ThisWorkbook.Close ' Datei schließen
End Sub
'__________________________________________________________________________________