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

Ausgewählte Tabellenblätter speichern basierend auf Liste

Ausgewählte Tabellenblätter speichern basierend auf Liste
23.01.2020 10:34:00
FxHa
Liebe Experten
Ich möchte per Button ein neues Excel-File aus einem bestehenden Excel-File generieren. Im Ausgangsfile sind mehrere Excelsheets vorhanden. Davon möchte ich eine Auswahl speichern, die Auswahl ist jedoch je nach "Vorprüfung" unterschiedlich.
ich habe nun die Zellen B33:B41 mit einer Wenn-Formel hinterlegt. Falls ein Tabellenblatt ausgewählt werden soll, erscheint dort in einer der Zellen der Name des Tabellenblatts, welches in die neue Datei übernommen werden soll.
Am Ende steht in den Zellen B33:B41 eine Liste mit allen Tabellenblättern, die in die neue Datei übernommen werden sollen, quasi als "Check" für den Benutzer. Dann soll er auf den Button drücken und die ausgewählten Tabellenblätter in eine neue Datei speichern (idealerweise mit einem automatisierten namen). Vorerst mal als "Speichern unter", ohne dass der Dateipfad vorgegeben ist.
Gibt es dafür eine Lösung?
Danke und Grüsse
FxHa

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausgewählte Tabellenblätter speichern basierend auf Liste
23.01.2020 22:11:50
Regina
Hi,
teste mal diesen Code. Der Code geht davon aus, dass die Tabellenblattnamen auf dem Tabellenblatt "Tabelle1" lückenlos ab B33 untereinander stehen.
Public Sub neue_Datei()
Dim obj_wkb_ziel As Workbook
Dim obj_wkb_quelle As Workbook
Dim lng_zeile As Long
Dim str_blattname As String
Set obj_wkb_quelle = ThisWorkbook
lng_zeile = 33
With obj_wkb_quelle
Do Until .Worksheets("Tabelle1").Cells(lng_zeile, 2) = ""
If lng_zeile = 33 Then
Set obj_wkb_ziel = Workbooks.Add
End If
.Worksheets(.Worksheets("Tabelle1").Cells(lng_zeile, 2).Value).Copy before:= _
obj_wkb_ziel.Worksheets(obj_wkb_ziel.Worksheets.Count)
lng_zeile = lng_zeile + 1
Loop
End With
End Sub
Gruß Regina
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige