[VBA] Blätter kopieren, ohne Formeln aber mit Werten und Formaten
#1
Hallo zusammen,

folgenden Code habe ich um meine Blätter in eine neue Arbeitsmappe zu kopieren.

Code:
Sub kopieren()
Dim strName$
strName = Worksheets("PickUp").Range("SaveAsMonat").Value
Application.DisplayAlerts = False
On Error GoTo Fehler:
Worksheets(Array("PickUp", "Auswertung")).Copy
ActiveWorkbook.SaveAs _
 ThisWorkbook.Path & "\" & strName & " " & Format(Date, "DD-MM-YYYY") & ".xlsx", FileFormat:=51
Exit Sub

Fehler:
Application.DisplayAlerts = True
MsgBox "Ein Fehler ist aufgetreten!" & vbNewLine & _
 "Fehler Nummer: " & Err.Number & vbNewLine & _
 Err.Description
End Sub

Ich möchte aber lediglich alle Werte und Formate übernehmen und keine Formeln oder Namen (Namens-Manager).
So ganz funktioniert es noch nicht. Erkennt jemand den Fehler?

Danke und VG
Top
#2
Hallo Jules,

wenn Du einen Fehler suchst, dann wäre das die Speicherung eines kompletten Blattes. Da ist nun mal alles dabei was Du nicht brauchst.

Wenn Du eine Lösung suchst, dann könntest Du
- zuerst das Blatt kopieren
- dann die Daten kopieren und als Werte einfügen
- dann die Namen entfernen
- dann speichern

Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Servus Smile

Das klingt vernünftig. Hättest du da auch einen VBA-Vorschlag für mich? Stehe nämlich gerade auf dem Schlauch

LG
Top
#4
Hallo Jules,

das kannst du eigentlich wunderbar mit dem Makrorekorder aufzeichnen. Den Code für das Kopieren bzw. eigentlich neu Abspeichern der Mappe hast du ja bereits. Den aufgezeichneten Code fügst du dann einfach vor dem "Exit Sub" an.
Schöne Grüße
Berni
Top
#5
Moin,

danke @alle für die Anregungen.
Hab es hinbekommen.

Code:
Dim strName$
strName = Worksheets("PickUp").Range("SaveAsMonat").Value
Application.DisplayAlerts = False
On Error GoTo Fehler:

Worksheets(Array("PickUp", "Auswertung")).Copy
With ActiveWorkbook
       For Each wksSheet In .Worksheets
           wksSheet.UsedRange.Value = wksSheet.UsedRange.Value
       Next wksSheet
ActiveWorkbook.SaveAs _
ThisWorkbook.Path & "\" & strName & " " & Format(Date, "DD-MM-YYYY") & ".xlsx", FileFormat:=51
.Close False

End With
Exit Sub

Grüße
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste