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

Forumthread: Do ... Loop beenden ohne Fehlermeldung

Do ... Loop beenden ohne Fehlermeldung
20.09.2018 12:41:34
Georg
Liebe Mitglieder, ich habe bisher wenig mit Schleifen gemacht (und mir hier tw. helfen lassen) genau mit dem Errorhandler.
Es funktioniert alles super bitte nur das Augenmerk auf folgendes richten:
Sind alle Dateien "abgearbeitet" und ich gehe im Datei Öffnen Dialog auf abbrechen,
kommt immer eine Fehlermeldung, die ich wegklicken kann.
Es stört jetzt nicht wirklich groß, aber ich würde diese gerne loswerden u v. a. wissen warum diese erscheint, bzw. was ich ändern muss im Sinne von Dazulernen.
Falls j-d mal Zeit hat kurz darüber zu schauen, wäre prima, DANKE:
Public Sub Konsolidieren()
Dim strFileName As String
Dim objWorkbook As Workbook
Dim i As Integer
Dim strFilter As String
Dim strString As String
Dim rngCell As Range
'Errorhandler initialisieren
On Error GoTo err_exit
'DateiÖffnen Dialog
strFilter = "Excel-Dateien(*.xlsx), *.xlsx" '** Dateifilter definieren
ChDrive "Z"
ChDir "Q:\XX\XX\" '** Laufwerk und Pfad definieren
strFileName = Application.GetOpenFilename(strFilter)
'Schleife
If strFileName  "" Then
Do
'Excelmappe öffnen
Set objWorkbook = Workbooks.Open(Filename:=strFileName)
'Die eigentliche Aufgabe: verbundene Zellen auflösen, Spalte G wird dadurch überflüssig  _
--> löschen, Spalte F Autofit
For i = 1 To objWorkbook.Worksheets.Count
With objWorkbook.Worksheets(i)
.UsedRange.Cells.UnMerge
.Columns("G:G").Delete
.Columns("F:F").AutoFit
End With
Next i
'Optisches Aufpeppen
For i = 1 To objWorkbook.Worksheets.Count
With objWorkbook.Worksheets(i)
strString = "Bitte senden.."
Set rngCell = Worksheets(i).Columns(1).Find(strString, lookat:= _
xlWhole, LookIn:=xlValues, MatchCase:=True)
If Not rngCell Is Nothing Then
rngCell.Copy rngCell.Offset(, 4)
rngCell.ClearContents
End If
End With
Next i
'Excelmappe schließen - ohne zu speichern = False / mit speichern = True
objWorkbook.Close SaveChanges:=True
Dim a As String
a = MsgBox("Die Datei wurde gespeichert", vbYes)
'nächste Excelmappe suchen
strFileName = Application.GetOpenFilename(strFilter)
'wird keine Mappe mehr gefunde Schleife verlassen
Loop Until strFileName = ""
End If
Exit Sub
err_exit:
MsgBox "Fehler " & CStr(Err.Number) & vbLf & vbLf & _
Err.Description, vbCritical, "Fehlermeldung"
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Do ... Loop beenden ohne Fehlermeldung
20.09.2018 12:49:11
Daniel
Hi
wenn du "Abbrechen" klickst, ist der Rückgabewert von Application.GetOpenFilename der Boolsche Wert FALSE.
Da du das in eine Stringvariable schreibst, macht VBA daraus den Text "Falsch".
die Prüfung müsste also lauten:

If strFileName  "Falsch" Then
Gruß Daniel
Anzeige
AW: danke für die Erläuterung, Daniel
20.09.2018 13:44:55
Georg
..funktioniert wie gewünscht. Gruß G
AW: danke für die Erläuterung, Daniel
20.09.2018 13:45:03
Georg
..funktioniert wie gewünscht. Gruß G
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
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