Rubrik: Excel | VB-Versionen: VBA | 07.06.06 |
Einzelne Tabellenblätter speichern VBA-Makro, um einzelne Tabellenblätter aus einer Arbeitsmappe zu speichern | ||
Autor: Cyber Chris | Bewertung: | Views: 15.670 |
www.cts.sub.cc | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Immer wieder kommt es vor, dass man aus einer kompletten Arbeitsmappe einzelne Tabellenblätter speichern muss.
Hier ist ein Tool, mit dem dies ganz einfach und elegant zu lösen ist.
Wir fügen unserem Projekt eine UserForm hinzu und platzieren auf ihr folgende Controls:
- 1 ListBox (lstSpeichern)
- 1 TextBox (txtSpeichern)
- 2 Labels um die Listbox und die TextBox zu benennen.
Nun fügen wir nachfolgenden Code in den Codeteil der UserForm:
' ''''''''''''''''''''''''''''''''''''''''''''''''' ' Tool zum speichern einzelner Tabellenblätter ' ' coded 2006 by Michael Hoffmann ' ' ''''''''''''''''''''''''''''''''''''''''''''''''' Private Sub UserForm_Initialize() Dim ws As Worksheet For Each ws In ActiveWorkbook.Sheets lstSpeichern.AddItem ws.Name Next ws End Sub
Private Sub lstSpeichern_Click() txtSpeichern.Locked = False txtSpeichern.SetFocus End Sub
Private Sub txtSpeichern_Exit(ByVal Cancel As MSForms.ReturnBoolean) Pfad = Path i = txtSpeichern.Text o = lstSpeichern.Value Sheets(lstSpeichern.Value).Copy ActiveSheet.SaveAs Pfad & i ActiveWorkbook.Close MsgBox "Blatt " & o & " wurde als " & i & Chr(13) & _ "im gleichen Verzeichnis gespeichert!", 64, _ "Hallo " & Environ("username") txtSpeichern.Text = "" txtSpeichern.Locked = True End Sub
Beim Start des Tools werden alle Tabellenblätter in die Listbox geladen. Bei Klick auf das zu speichernde Tabellenblatt, blinkt der Cursor in der Textbox und wir können dem Tabellenblatt einen Namen geben. Bei Betätigen von Enter wird das Tabellenblatt im gleichen Verzeichnis wie die Arbeitsmappe unter unserem angegeben Namen gespeichert. Eine kleine MSG-Box bestätigt uns dies nocheinmal.
Viel Spaß damit!