Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige