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
Hier mein vorläufiger VBA mit dem ich jedes Worksheet in einem neuen seperaten Workbook speichere, anderst bekomme ich es leider noch nciht hin
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
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
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.
Es sind 2 Worksheets die in einem neuen Workbook gespeichert
werden sollen. Bennenung des Worksheets wäre noch optimal
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
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“
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.
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!!
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.