Hallo Leute
ich habe folgenden Code in Verwendung, mit dem ich Dateien zum Import auswähle. Nach dem Import erscheint dann Userform2 als Erfolgsmeldung.
Funktioniert auch alles super.
Aber wenn ich auf "Abbrechen" bei der Dateiauswahl klicke, dann erscheint trotzdem die Userform2 als Erfolgsmeldung zum Dateiimport.
Wo habe ich denn den "Bug" im Code? Oder eine If-Schleife vergessen?
Beim Abbruch hätte ich natürlich lieber z.B. eine Userform3, die dann den Abbruch bestätigt oder so, dass gar nichts passiert und einfach wieder das Tabellenblatt erscheint und nicht die Userform2...
Kann mir jemand helfen?
ich habe folgenden Code in Verwendung, mit dem ich Dateien zum Import auswähle. Nach dem Import erscheint dann Userform2 als Erfolgsmeldung.
Funktioniert auch alles super.
Aber wenn ich auf "Abbrechen" bei der Dateiauswahl klicke, dann erscheint trotzdem die Userform2 als Erfolgsmeldung zum Dateiimport.
Wo habe ich denn den "Bug" im Code? Oder eine If-Schleife vergessen?
Beim Abbruch hätte ich natürlich lieber z.B. eine Userform3, die dann den Abbruch bestätigt oder so, dass gar nichts passiert und einfach wieder das Tabellenblatt erscheint und nicht die Userform2...
Kann mir jemand helfen?
Code:
'Führt alle Tabellenblätter der ausgewählten Excel-Dateien in dieser Arbeitsmappe zusammen
Sub Dateien_öffnen()
Dim wbQuelle As Workbook
Dim sh As Worksheet
Dim arrdateien As Variant
Dim cntDatei As Long
'Screenupdating deaktivieren
Application.ScreenUpdating = False
'Dateien auswählen
arrdateien = Application.GetOpenFilename(filefilter:="Excel-Dateien (*.xls*),*.xls*", MultiSelect:=True)
'Wurde mindestens eine Datei ausgewählt?
If IsArray(arrdateien) Then
'Schleife über alle ausgewählten Dateien
For cntDatei = 1 To UBound(arrdateien)
'Aktuelle Arbeitsmappe öffnen
Set wbQuelle = Workbooks.Open(Filename:=arrdateien(cntDatei), UpdateLinks:=False, ReadOnly:=True)
'Schleife über alle Tabellenblätter
For Each sh In wbQuelle.Worksheets
'Aktuelles Tabellenblatt kopieren
If InStr(sh.Name, "Auswertung") Then
sh.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
eingabe = InputBox("Bitte eine eindeutige Bezeichnung für das importierte Tabellenblatt wählen (z.B. Marke + Kennzeichen):")
ActiveSheet.Name = eingabe
End If
Next sh
'Aktuelle Arbeitsmappe schließen
wbQuelle.Close savechanges:=False
Next cntDatei
End If
'Screenupdating aktivieren
Application.ScreenUpdating = True
UserForm2.Show
Tabelle1.Activate
End Sub