Tabellenblatt in andere Mappe kopieren

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Tabellenblatt in andere Mappe kopieren
von: Hecke
Geschrieben am: 16.11.2015 00:31:56

Hallo Forum,
ich brauche mal Hilfe bei meinem Problem.
Über einen Button auf dem aktiven Tabellenblatt möchte ich dieses Blatt als Kopie in eine andere geschlossene Arbeitsmappe speichern.
Name des "neuen" Tabellenblattes in der neuen Mappe der Wert der in Zelle J1 steht.

Auswahl wohin kopiert werden soll über den speichern unter Dialog.
Wenn die Mappe in der das Blatt gespeichert werden soll vorher geöffnet werden muss, dann sollte das im Hintergrund passieren.
Nach dem Speichern in der ausgewählten Mappe, diese dann speichern und schließen
Die Quelldatei und das Quelltabellenblatt soll weiterhin geöffnet bleiben.
Ich hoffe ihr könnt mir dabei etwas helfen.
Danke Euch

Bild

Betrifft: AW: Tabellenblatt in andere Mappe kopieren
von: Michael (migre)
Geschrieben am: 16.11.2015 08:55:11
Hallo Hecke!
zB so:

Sub BlattKopieInMappe()
    Dim Quelle As Workbook
    Dim Ziel As Workbook
    Dim Dialog As FileDialog
    Dim Blatt As Worksheet
    
    Application.ScreenUpdating = False
    
    Set Quelle = ThisWorkbook
    Set Blatt = Quelle.ActiveSheet
    
    Set Dialog = Application.FileDialog(msoFileDialogFilePicker)
    
    With Dialog
        .Title = "Bitte Zieldatei wählen"
        .AllowMultiSelect = False
        If .Show <> -1 Then
            MsgBox "Vorgang abgebrochen", vbInformation
            Exit Sub
        Else:
            Set Ziel = Workbooks.Open(.SelectedItems(1))
        End If
    End With
    
    With Ziel
        Blatt.Copy after:=.Worksheets(.Worksheets.Count)
        .Worksheets(.Worksheets.Count).Name = .Worksheets(.Worksheets.Count).Range("J1").Text
        .Save
        .Close
    End With
    
    Application.ScreenUpdating = True
End Sub
Falls das Blatt mit diesem Namen aber schon in der Ziel-Mappe existiert, läuft das in einen Fehler. Eine entsprechende Behandlung konnte ich mangels Angaben nicht einbauen.
LG
Michael

Bild

Betrifft: AW: Tabellenblatt in andere Mappe kopieren
von: Hecke
Geschrieben am: 17.11.2015 00:10:31
Hallo Michael und Danke.
Hat natürlich super funktioniert.
hast natürlich Recht mit dem Fehler. Es soll ja immer User geben die alles ausprobieren.
Wie kann ich denn den Fehler abfangen, wenn das Blatt schon existiert? in Zelle j1 steht ein Datum, Format tt.mm.jjjj, und in diesem Format werden dann ja auch die Tabellenblätter abgespeichert. Also wenn z.B. Tabellenblatt 01.01.2016 schon vorhanden, dann einfach eine Meldung "Blatt schon vorhanden" und abbrechen. Wäre das möglich?
Gruß Hecke

Bild

Betrifft: AW: Tabellenblatt in andere Mappe kopieren
von: Hecke
Geschrieben am: 17.11.2015 00:12:23
?

Bild

Betrifft: AW: Tabellenblatt in andere Mappe kopieren
von: Matthias L
Geschrieben am: 17.11.2015 06:20:54
Hallo


Option Explicit
Sub BlattKopieInMappe()
    Dim Quelle As Workbook
    Dim Ziel As Workbook
    Dim Dialog As FileDialog
    Dim Blatt As Worksheet, X&
    
    Application.ScreenUpdating = False
    
    Set Quelle = ThisWorkbook
    Set Blatt = Quelle.ActiveSheet
    
    Set Dialog = Application.FileDialog(msoFileDialogFilePicker)
    
    With Dialog
        .Title = "Bitte Zieldatei wählen"
        .AllowMultiSelect = False
        If .Show <> -1 Then
            MsgBox "Vorgang abgebrochen", vbInformation
            Exit Sub
        Else:
            Set Ziel = Workbooks.Open(.SelectedItems(1))
        End If
    End With
    
    For X = 1 To Ziel.Sheets.Count
     If Sheets(X).Name = Blatt.Range("J1").Text Then
        MsgBox "Blatt existiert schon: " & Sheets(X).Name
        Ziel.Close
        Exit Sub
      End If
    Next
        
    With Ziel
        Blatt.Copy after:=.Worksheets(.Worksheets.Count)
        .Worksheets(.Worksheets.Count).Name = .Worksheets(.Worksheets.Count).Range("J1").Text
        .Save
        .Close
    End With
    
    Application.ScreenUpdating = True
End Sub
Gruß Matthias

Bild

Betrifft: AW: Danke...
von: Michael (migre)
Geschrieben am: 17.11.2015 08:38:37
Matthias,
für's Einsteigen in den Faden. Ich bin gestern einfach nicht mehr dazu gekommen.
Hecke,
für Deine nette Rückmeldung. Du hast ja glücklicherweise noch von Matthias die gewünschte Ergänzung bekommen.
LG und schönen Tag
Michael

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Tabellenblatt in andere Mappe kopieren"