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

Dateiöffnen - Bei Abbruch Vorgang wiederholen

Forumthread: Dateiöffnen - Bei Abbruch Vorgang wiederholen

Dateiöffnen - Bei Abbruch Vorgang wiederholen
23.10.2023 15:49:52
Patrick Grübel
Hallo Zusammen,

das ist mein erstes richtiges VBA Projekt und tue mich gerade etwas schwer bei folgendem Fall.

1. Datei soll geöffnet werden
2. Datei wird ausgewählt und geöffnet -> Ende Sub
3. Es wird keine Datei geöffnet und auf Abbrechen geklickt
3.1 MsgBox öffnet sich und fragt, ob wirklich beendet werden soll
3.1.1 bei msgbox vbyes -> Programm schließen
3.1.2 bei msgbox vbno -> wieder bei Punkt 2 beginnen

Ich hab folgende Codierung die funktioniert, aber ich habe keine genau Idee wie ich das als Schleife verpacke mittel Do ... Loop While oder Do....Loop Until, da ich noch mit If innerhalb arbeiten muss.

Hier mein bisheriger Code ohne Schleife, welche nach dem zweiten Versuch, dann das Programm beendet.

Sub EnaioListeOeffnen()


Dim intMsgBox As Integer
Dim strDateipfad As String

msgbox "Bitte speichern Sie eine aktuelle Version der enaio-Liste auf Ihrem Desktop, um diese im nächsten Schritt zu öffnen", vbOKOnly + vbInformation, "Hinweis"

strDateipfad = Application.GetOpenFilename

If strDateipfad > "Falsch" Then
Workbooks.Open strDateipfad
ElseIf strDateipfad = False Then
intMsgBox = msgbox("Sind Sie sicher, dass Sie abbrechen möchten? Alle Daten gehen dann verloren.", vbExclamation + vbYesNo + vbDefaultButton2, "Wichtiger Hinweis")
If intMsgBox = 6 Then
Workbooks("Vorlage_Fuhrpark_Auswertung.xlsm").Saved = True
Workbooks("Vorlage_Fuhrpark_Auswertung.xlsm").Close
Else
On Error GoTo Fehlerbehandlung:
Workbooks.Open Application.GetOpenFilename

Exit Sub

Fehlerbehandlung:
msgbox "Die Datei wird geschlossen und alle Daten gehen verloren.", vbInformation, "Anwendung wird geschlossen"
Workbooks("Vorlage_Fuhrpark_Auswertung.xlsm").Saved = True
Workbooks("Vorlage_Fuhrpark_Auswertung.xlsm").Close

End If

End If

End Sub
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiöffnen - Bei Abbruch Vorgang wiederholen
23.10.2023 18:29:58
Yal
Hallo Patrick,

auf Wortspiel mit deinem Namen wird verzichtet, aber bei deinem langen Nachdenken kitzelt es ;-)

Folgende Vorschlag:
Sub EnaioListe_oeffnen()

Dim strDateipfad As String
Dim bAussteigen As Boolean

Const cMsgSpeichern = "Bitte speichern Sie eine aktuelle Version der enaio-Liste auf Ihrem Desktop, um diese im nächsten Schritt zu öffnen"
Const cMSgSicher = "Sind Sie sicher, dass Sie abbrechen möchten? Alle Daten gehen dann verloren."

MsgBox cMsgSpeichern, vbOKOnly + vbInformation, "Hinweis"
Do
strDateipfad = Application.GetOpenFilename
If strDateipfad > "Falsch" Then
Workbooks.Open strDateipfad
Else
If MsgBox(cMSgSicher, vbExclamation + vbYesNo + vbDefaultButton2, "Wichtiger Hinweis") = vbYes Then
With Workbooks("Vorlage_Fuhrpark_Auswertung.xlsm")
.Saved = True
.Close
End With
bAussteigen = True
End If
End If
Loop While Not bAussteigen
End Sub


VG
Yal
Anzeige
AW: Dateiöffnen - Bei Abbruch Vorgang wiederholen
24.10.2023 08:19:34
Patrick Grübel
Hallo Yal,

ich habe meinen Namen ausgereizt bei der Aufgabe :D

Vielen Dank für deinen Code. So hab ich mir das vorgestellt und habe jetzt eine Idee wie ich besser die Do Loop While Schleife besser nutzen kann. Ich habe noch nach workbooks.open strDateipfad ein bAussteigen = True eingebaut, sonst hänge ich in der Schleife fest.

Sub EnaioListe_oeffnen()

Dim strDateipfad As String
Dim bAussteigen As Boolean

Const cMsgSpeichern = "Bitte speichern Sie eine aktuelle Version der enaio-Liste auf Ihrem Desktop, um diese im nächsten Schritt zu öffnen"
Const cMSgSicher = "Sind Sie sicher, dass Sie abbrechen möchten? Alle Daten gehen dann verloren."

MsgBox cMsgSpeichern, vbOKOnly + vbInformation, "Hinweis"
Do
strDateipfad = Application.GetOpenFilename
If strDateipfad > "Falsch" Then
Workbooks.Open strDateipfad
bAussteigen = True
Else
If MsgBox(cMSgSicher, vbExclamation + vbYesNo + vbDefaultButton2, "Wichtiger Hinweis") = vbYes Then
With Workbooks("Vorlage_Fuhrpark_Auswertung.xlsm")
.Saved = True
.Close
End With
bAussteigen = True
End If
End If
Loop While Not bAussteigen
End Sub


Anzeige
;

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