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

Importmakro mit Löschen von Tabellenblättern

Importmakro mit Löschen von Tabellenblättern
12.06.2017 11:22:18
Tabellenblättern
Hallo zusammen,
ich bekomme regelmäßig 4 Excel-Dateien, deren Dateinamen sich aber ändern, weil das aktuelle Datum Teil des Dateinamens ist. In diesen Dateien befindet sich jeweils ein Registerblatt, das ich manuell an das "rechte" Ende der Registerblätter verschieben muss, damit eine "automatisierte" Verarbeitung klappt. Alternativ könnte ich auch die anderen Registerblätter löschen, so dass nur dieses eine Registerblatt übrig bleibt. Vorteil ist aber, dass dieses Registerblatt stets den gleichen Namen trägt.
Wäre eine Makro möglich, wo ich die 4 Dateien per Excel-Datei-Explorer-Dialog auswählen könnte und dann die eingeladenen Dateien dann so modifiziert werden, dass am Ende pro Datei nur das gewünschte Registerblatt übrig bleibt? Die Namen den Registerblätter würde ich dann im Code selbst vorgeben können?!
Viele Grüße
Bernd

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Importmakro mit Löschen von Tabellenblättern
13.06.2017 13:11:17
Tabellenblättern
Hallo! Mal ein paar Fragen. Liegen die 4 Dateien immer im selben Ordner oder kann das auch unterschiedlich sein? Der Name des Registerblattes, das übrig bleiben soll ist bei allen Dateien gleich oder kann der von Datei zu Datei variieren? Soll / Muss der Name abgefragt werden oder soll der im Code fest stehen? Sollen die anderen Blätter gelöscht werden oder nur nach Rechts verschoben werden? VG
AW: Importmakro mit Löschen von Tabellenblättern
13.06.2017 17:19:27
Tabellenblättern
lasse den Fragesteller entscheiden ob offen.
Es ist Heute nicht mehr üblich eine Rückmeldung zu geben und so ist der Beitrag über 6 Tage offen.

Anzeige
AW: Importmakro mit Löschen von Tabellenblättern
13.06.2017 21:07:48
Tabellenblättern
Hallo,
Der Name des Registerblattes ist nicht gleich, Name soll im Code stehen. Die übrigen Blätter sollen gelöscht werden!
Viele Grüße
Bernd
AW: Importmakro mit Löschen von Tabellenblättern
14.06.2017 14:37:35
Tabellenblättern
Hallo! Hier dann mal eine Variante. Dabei werden die Blattnamen (die bleiben sollen) immer erst noch abgefragt. Da wo es im Code steht, noch anpassen, insb. dem Pfad. VG Matthias

Sub blätter_löschen()
Dim i As Long
Dim j As Long
Dim wb As Object
Dim pfad As String
Dim blattname As String
Application.ScreenUpdating = False
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Wählen Sie die zu bearbeitenden Dateien aus:"
.InitialView = msoFileDialogViewDetails
.AllowMultiSelect = True
.InitialFileName = Application.Path & "*.xls; *.xlsx; *.xlsm"
.InitialFileName = "C:\Users\ich\Desktop"  'anpassen
.Filters.Add "Exceldaten", "*.xls; *.xlsx; *.xlsm", 1 'ggf anpassen oder rausnehmen
If .Show Then
For i = 1 To .SelectedItems.Count
pfad = .SelectedItems(i)
name = Right(pfad, InStr(1, StrReverse(pfad), "\") - 1)
blattname = InputBox("Name des Blattes welches in " & name & " bleiben soll.", " _
Blattname")
Application.DisplayAlerts = False
Set wb = Workbooks.Open(pfad)
For j = wb.Worksheets.Count To 1 Step -1
If wb.Worksheets(j).name  blattname Then wb.Worksheets(j).Delete
Next j
wb.Close savechanges:=True
Application.DisplayAlerts = True
Next i
End If
End With
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Importmakro mit Löschen von Tabellenblättern
14.06.2017 16:41:34
Tabellenblättern
Hallo,
bei:
blattname = InputBox("Name des Blattes welches in " & name & " bleiben soll.", " _
Blattname")
bekomme ich Syntaxfehler?
Viele Grüße
Bernd
AW: Importmakro mit Löschen von Tabellenblättern
14.06.2017 14:32:17
Tabellenblättern
Hallo Bernd
ich habe mich mal mit einer Lösung versucht und biete drei verschiedene Lösungswege an.
Eingabe in eine Zelle, über InputBox, und über UserForm. Jetzt hast du freie Auswahl.
Würde mich freuen wenn es dir die Arbeit erleichtert!
mfg Piet
ttp://www.herber.de/bbs/user/114272.xls
AW: Importmakro mit Löschen von Tabellenblättern
14.06.2017 16:43:29
Tabellenblättern
Hi,
klappt gut, nur bei der Userform bekomme ich Fehlermeldung, er behält nicht die gewünschte Datei...
VG
Bernd
Anzeige
AW: Importmakro mit Löschen von Tabellenblättern
14.06.2017 20:58:01
Tabellenblättern
Hallo Bernd
ich zwei interessante Entdeckungen gemacht, über die ich verblüfft bin, eine aber technisch nicht erklaeren kann!
Einmal ein dummer Flüchtigkeitsfehler im Code, und zwar im: - CommandButton1_Click. Aendere es bitte wie unten.
Bei dir steht als Variable Blatt statt UFBlatt, und man sollte den Code stoppen wenn keine Liste gewaehlt wurde!
Der zweite Effekt ist, befinden sich in der Datei Module funktioniert bei mir das Löschen nicht mehr!
Ich weiss aber nicht warum das so ist? - Wenn du keine Module in der Datei drin hast ist das ja egal!
mfg Piet
Private Sub CommandButton1_Click()
UFBlatt = UserForm1.ListBox1.Text
If UFBlatt = Empty Then MsgBox "Kein Blatt ausgewählt!!": Exit Sub
Call Löschen_über_UserForm
End Sub

Anzeige
AW: Importmakro mit Löschen von Tabellenblättern
14.06.2017 21:08:32
Tabellenblättern
Hallo Bernd
habe jetzt gerade erst gesehen das noch ein Fehler in der İnputBox vorliegt. der Korrekte Code ist so:
Blatt = InputBox("Welches Blatt soll bestehen bleiben?" & Chr(10) & "Bitte Name eingeben:")
Vielleicht ist beim kopieren was verloren gegangen ?
mfg Piet
AW: Importmakro mit Löschen von Tabellenblättern
16.06.2017 13:42:39
Tabellenblättern
Hallo Piet,
irgendwie klappt es nicht mit der UserForm. Ich markiere ein Registerblatt und es wir auch alles gelöscht. Leider kommt aber die Fehlermeldung: "1 Unerwarteter Fehler" und das erste Registerblatt des Datei bleibt stets übrig, obwohl das nicht markiert war. Vielleicht kopierst Du mir doch noch mal den kompletten Code rein...
Viele Grüße und Danke für die Mühe
Bernd
Anzeige
AW: Importmakro mit Löschen von Tabellenblättern
17.06.2017 13:10:49
Tabellenblättern
Hallo Bernd
ich habe den Code noch mal umgeschrieben in der Hoffnung das es jezt klappen wird.
Bei mir hatte ich Probleme mit alten Dateien in denen noch -Modulblaetter- waren (vor Vba Editor Excel 97)
Ich hoffe das es jetzt richtig klappt, sonst bitte melden. Waere dann ratlos, aber es interessiert mich.
mfg Piet
'umgeschrieben  17.6.2017
'Probleme mit alten Dateien in denen Modul Blaetter sind!!
Sub Löschen_über_UserForm()
Dim f, j As Integer
If ActiveWorkbook.Name = ThisWorkbook.Name Then Exit Sub
On Error Resume Next
'Löschwarnung abschalten
Application.DisplayAlerts = False
UFBlatt = UserForm1.ListBox1.Text
'alle Blaetter Löschen ausser Blatt
For j = ActiveWorkbook.Worksheets.Count To 1 Step -1
If Worksheets(j).Name  UFBlatt Then Worksheets(j).Delete
If Err > 0 Then f = f + 1: Err = Empty: MsgBox "Err  " & Err
Next j
'Löschwarnung wieder einschalten
Application.DisplayAlerts = True
If f > 0 Then MsgBox f & "  unerwarteter Fehler"
Unload UserForm1
End Sub

Anzeige
Es läuft... Danke!
19.06.2017 16:51:05
Bernd
Hallo Piet,
jetzt läuft es durch!!!
Vielen Dank!
Gruß,
Bernd

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige