Arbeisblätter in einem neuen Workbook speichern

Hallo,

ich habe ein Problem. Ich möchte einzelne Arbeitsblätter die im gleichen Workbook sind in einem neuen Workbook speichern.
Es wäre für mich schon ok, wenn die zwei Arbeitsblätterin das neue Workbook kopiert werden und man es dann manuell speichern muss ( Speichern muss nicht über VBA geschehen)

Es sind 2 Worksheets die in einem neuen Workbook gespeichert werden sollen. Bennenung des Worksheets wäre noch optimal :wink:

Hier mein vorläufiger VBA mit dem ich jedes Worksheet in einem neuen seperaten Workbook speichere, anderst bekomme ich es leider noch nciht hin :smile:

For Each ws In ActiveWorkbook.Worksheets
If ws.name = „VDA Vordruck“ Then
wsvda.Copy
ActiveSheet.Shapes(„Schaltfläche 43“).Select
Selection.Delete
ActiveSheet.Shapes(„Schaltfläche 44“).Select
Selection.Delete
ActiveSheet.Shapes(„Schaltfläche 45“).Select
Selection.Delete
ActiveSheet.Shapes(„CB_Löschen“).Select
Selection.Delete
Exit For
End If
Next

For Each ws In Workbooks(„CALYPSO_Konverter_V1_änderung_V2“).Worksheets
If ws.name = „PPAP“ Then
wsppap.Copy
ActiveSheet.Shapes(„Schaltfläche 2“).Select
Selection.Delete
ActiveSheet.Shapes(„Schaltfläche 1“).Select
Selection.Delete
ActiveSheet.Shapes(„CB_LöschenPPAP“).Select
Selection.Delete
Exit For
End If
Next

Wäre über jede hilfreiche Antwort froh :wink:

Vielen Dank schonmal im Voraus für eure Hilfe!
Grüße

Kurzer Code,
Beachte bitte,dass bei
Sheet_1_Name = „Tabelle_Kunden“
und bei Sheet_2_Name = „Tabelle_Produkte“ die Namen deiner Blätter stehen müssen und deine Arbeitsmappe aktiv sein muss, wenn du das Makro startest:

Sub Kopiere\_Sheets()

 'muss angepasst werden:
 Sheet\_1\_Name = "Tabelle\_Kunden"
 Sheet\_2\_Name = "Tabelle\_Produkte"

 Old\_Name = ActiveWorkbook.Name
 Workbooks.Add
 New\_Name = ActiveWorkbook.Name

 Workbooks(Old\_Name).Sheets(Sheet\_1\_Name).Copy Before:=Workbooks(New\_Name).Sheets(1)
 Workbooks(Old\_Name).Sheets(Sheet\_2\_Name).Copy Before:=Workbooks(New\_Name).Sheets(2)
End Sub

Danke für deine schnelle Antwort:

Ich habe dazu jedoch noch ein paar kleine Fragen.

Sheet_1_Name als was für eine Variablentyp muss ich diese deklarieren?
Das gleiche bei Old_name?

Wäre diese Variante auch möglich?
Set Sheet_1_Name = Worksheets(„VDA Vordruck“)

Vielen Dank schon im Voraus!

die Variablen sind alle vom Typ String
Deshalb geht deine Variante mit Set auch nicht. Da ist es ein Typ Worksheet.
Ein Problem könnte das Leerzeichen im Namen bilden!!
Immer mit Unterstrich arbeiten.

Hallo,
was genau ist das Problem? Geht was nicht, gibt’s eine Fehlermeldung, wenn ja, welche und wann, …
lg

Sorry, habe ich noch nie probiert.

Sorry, bin im Moment mit meiner Tochter im KH und kann nicht antworten.

liebe Grüße

Sorry faro01,

muss leider passen und kann nicht helfen

Gruß
peter1952

Es sind 2 Worksheets die in einem neuen Workbook gespeichert
werden sollen. Bennenung des Worksheets wäre noch optimal :wink:

For Each ws In ActiveWorkbook.Worksheets
If ws.name = „VDA Vordruck“ Then
wsvda.Copy
ActiveSheet.Shapes(„Schaltfläche 43“).Select
Selection.Delete
ActiveSheet.Shapes(„Schaltfläche 44“).Select
Selection.Delete
ActiveSheet.Shapes(„Schaltfläche 45“).Select
Selection.Delete
ActiveSheet.Shapes(„CB_Löschen“).Select
Selection.Delete
Exit For
End If
Next

For Each ws In
Workbooks(„CALYPSO_Konverter_V1_änderung_V2“).Worksheets
If ws.name = „PPAP“ Then
wsppap.Copy
ActiveSheet.Shapes(„Schaltfläche 2“).Select
Selection.Delete
ActiveSheet.Shapes(„Schaltfläche 1“).Select
Selection.Delete
ActiveSheet.Shapes(„CB_LöschenPPAP“).Select
Selection.Delete
Exit For
End If
Next

Wäre über jede hilfreiche Antwort froh :wink:

Vielen Dank schonmal im Voraus für eure Hilfe!
Grüße

Hallo,

Versuch es mit folgendem Code:
Kopieren aus Mappe1 nach Mappe2; Aufruf erfolgt aus Mappe1:
(Name der Mappe1 = „CALYPSO_Konverter_V1_änderung_V2“)

'Kopiert die beiden Sheets jeweils hinten dran in
'Mappe2, der Name der Blätter wird aus Mappe1 über-
'nommmen; jeden Befehl in eine Zeile!:
Sheets(„VDA Vordruck“).Copy After:=Workbooks(„Mappe2“).Sheets(Sheets.Count)
Windows(„CALYPSO_Konverter_V1_änderung_V2“).Activate
Sheets(„PPAP“).Copy After:=Workbooks(„Mappe2“).Sheets(Sheets.Count)

'ggf Namen der Blätter ändern:
Sheets(„VDA Vordruck“).Name = „VDA Vordruck Kopie“
Sheets(„PPAP“).Name = „PPAP Kopie“

'ggf Mappe2 unter neuem Namen speichern:
ActiveWorkbook.SaveAs FileName:= „C:\ProjektX\ABC.xls“

'Wieder Mappe1 aktivieren:
Windows(„CALYPSO_Konverter_V1_änderung_V2“).Activate

Dein Code ist wohl einigermaßen umständlich, ich habe
nicht ganz kapiert, was Du wirklich bezweckst. Um Dir
besser zu helfen, bräuchte ich wohl mehr Auskünfte über
Deine Anforderungen. Im Zweifelsfall kannst Du einfach ein
entsprechendes Makro aufzeichnen, das hilft Dir mit
Sicherheit über den Berg.

Gruß
gs

Das problem hat sich erledigt :smile:

Danke für eure Hilfe, habe es mit den von euch beschriebenen Programmen gemacht und noch den Makro dazu aufgezeichnet, dann hat es einwandfrei funktioniert!!

Danke!

Hi Faro01!

Du schreibst, dass es für dich ok wäre, wenn die Worksheets per VBA kopiert werden und du sie dann händisch speichern könntest?! Und deine Anweisung wsvda.Copy bzw. wsppap.Copy funktionieren nicht oder wie? Versuch’s mal nur mit ws.copy!

Hilft dir das allein schon weiter?

Ansonsten könntest dir ja nochmal die Methode ActiveWorkbook.SaveAs … näher anschauen. Als Parameter könntest da einen Pfad inkl. Filenamen angeben.

Ich hoffe dir damit wenigstens ein bisschen weitergeholfen zu haben.

Lg neotokyo_1