[VBA] Tabellenblatt kopieren

Gepostet am: Mar 27, 2011 2:3:32 PM

Tabellenblatt kopieren

Sub NeuesTabBlatt()Dim NewName As String     ActiveSheet.Copy Before:=ActiveSheet NewName = InputBox("Geben Sie einen Tabellenblattnamen ein") ActiveSheet.Name = NewName End Sub

Um ein Tabellenblatt aus einem von einer Datei in eine andere Datei zu kopieren, verwende ich folgenden Code:

Vorlage_kopieren

Function Vorlage_kopieren(strArbeitsmappeVorlage As String, strTabelleVorlage As String, strZielArbeitsmappe As String, strZielTabelle As String) As StringDim VorlageWorkbook As Workbook Dim ZielWorkbook As Workbook Dim bseitesexists As BooleanDim i As IntegerDim j As Integer bseitesexists = False 'als Standard auf falsch setzen' ------------------ neues Tabellenblatt erstellen ------------------------'prüfen, ob ein gleichnamiges Tabellenblatt schon existiert Workbooks(strZielArbeitsmappe).Activate 'Zielarbeitsmappe aktivierenFor i = 1 To ActiveWorkbook.Worksheets.Count     If ActiveWorkbook.Sheets(i).Name = strZielTabelle Then         bseitesexists = True     End IfNext i If bseitesexists = True Then 'neue Tabellenblattname, falls das Tabellenblatt schon existiert     strZielTabelle = InputBox("Name des Tabellenblattes, da ein Tabellenblatt mit dem Namen '" & strZielTabelle & "' schon existiert:", "neuer Name")End IfSet VorlageWorkbook = Workbooks(strArbeitsmappeVorlage)Set ZielWorkbook = Workbooks(strZielArbeitsmappe) VorlageWorkbook.Sheets(strTabelleVorlage).Copy after:=ZielWorkbook.Sheets(ZielWorkbook.Sheets.Count)' benennen ZielWorkbook.Sheets(ZielWorkbook.Sheets.Count).Name = strZielTabelle Vorlage_kopieren = strZielTabelle End Function

Um beispielsweise von einem Add-in ein Tabellenblatt in die aktive Arbeitsmappe zu kopieren:

Beispiel

strTabellenblatt = Vorlage_kopieren(ThisWorkbook.Name, "Vorlage_Name", ActiveWorkbook.Name, strTabellenblatt)

Um die Tabellenblätter eines Add-ins anzuzeigen, gehen Sie in VBA unter "Diese Arbeitsmappe" und schalten dort zwischen "IsAddin=True" und "IsAddin=False" um.