Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sheet in ein neues Book speichern

Forumthread: Sheet in ein neues Book speichern

Sheet in ein neues Book speichern
13.10.2024 10:24:32
Thomas
Guten Morgen,
ich will ein Sheet aus einem bestehenden Book in ein neues, anderes Book speichern. Funktioniert Tip Top.

Nun komme ich aber zu einem weiteren Schritt und habe da keine Ahnung:
Ich möchte das dieses Sheet im neuen, anderen Book ohne jegliche Zellbezüge abgelegt wird. keine Zellverknüpfungen, keine Hyperlinks. Nur der Zellinhalt wenn es einer haben sollte.

Ich habe hier den Codeschnipsel den man anpassen müsste.

'**Zu kopierendes Sheet kopieren
ActiveWorkbook.Worksheets("BaubegleitendeErstprüfung").Copy

'** Kopiertes Sheet in neue Arbeitsmappe speichern (Ohne Makroformat)
ActiveWorkbook.SaveAs fileName:=DateiPfad, FileFormat:=xlOpenXMLWorkbook '........xlOpenXMLWorkbookMacroEnabled'.....Mit Makro speichern

Für eine Erklärung wie das geht wäre ich dankbar.

Gruss
Thomas
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Du kannst nach...
13.10.2024 10:37:14
Case
Moin, :-)

... dem kopieren noch folgendes einfügen: ;-)

ActiveWorkbook.Worksheets("BaubegleitendeErstprüfung").Copy 

ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value


"ActiveWorkbook" kann in "die Hose gehen". ;-)
ActiveSheet direkt nach dem kopieren ist OK, denn es ist dann in der Regel immer das aktive Tabellenblatt. ;-)

Zum Thema "FileFormat":
https://learn.microsoft.com/de-de/office/vba/api/excel.xlfileformat

Servus
Case
Anzeige
AW: Du kannst nach...
13.10.2024 12:27:47
Thomas
Hallo Case, danke, funktioniert aber auch nicht.

Wunder mich aber auch nicht.
weil ich kopiere ja vom book1 und füge in book 2 ein. da ist sich sicher etwas mit dieser aktive Angabe etwas faul.

mein Skript geht so:

Sub xlsxBookSpeichern()

' Laufwerk und Verzeichnis suchen

'** Dimensionierung der Variabeln
Dim Pfad
Dim APS$: APS = Application.PathSeparator
Dim DateiName As String, FN$
Dim DateiPfad As String, OrdnerName As String
Dim PfadName As String

'** Splitten vom Stammverzeichnis
Pfad = Split(ActiveWorkbook.path, APS)

'** Dateiablage abfragen ("wenn E:\")
If Not Len(ThisWorkbook.path) > 3 Then
'Wenn Datei nur auf Datenträger abgelegt ist ("wenn E:\")
MsgBox "Die Datei ist auf dem Datenträger," & vbCrLf & vbCrLf _
& " " & Pfad(0) & " Abgelegt.", vbInformation, "Dateiablage, Abfragen"
Exit Sub

Else
'MsgBox "1"
End If

'**Dateiname ohne Dateiendung auslesen
FN = ActiveWorkbook.Name
DateiName = Left(FN, InStrRev(FN, ".") - 1)
'MsgBox Dateiname

'**Zusatzordner angeben
OrdnerName = "RSK-Management\+1SammelOrdner\ErstPrüfungen"

'**Pfad mit Dateiname um das neue Workbook zu erstellen
DateiPfad = Pfad(0) & APS & OrdnerName & APS & DateiName & ".xlsx" '& APS & Pfad(3)
PfadName = Pfad(0) & APS & OrdnerName

'**'Verhindert dass eine Systemmeldung fragt ob das Book in XLSM gespeichert werden soll
Application.DisplayAlerts = False

'**'Prüfen ob Dateiname am angegebenen Pfad schon vorhanden ist
If Dir$(DateiPfad, vbNormal) > "" Then
MsgBox "Achtung die Datei" & vbCrLf & DateiName & ".xlsx" & vbCrLf & " ist schon gespeicher in:" & vbCrLf & _
vbCrLf & PfadName & "", vbCritical, "Dateiablage prüfen"
Exit Sub

Else

'**Zu kopierendes Sheet kopieren
ActiveWorkbook.Worksheets("BaubegleitendeErstprüfung").Copy
sheet

'** Kopiertes Sheet in neue Arbeitsmappe speichern (Ohne Makroformat)
ActiveWorkbook.SaveAs fileName:=DateiPfad, FileFormat:=xlOpenXMLWorkbook 'xlOpenXMLWorkbookMacroEnabled'.....Mit Makro speichern

'**Löschen von Shapes und Buttons im neu abgespeicherten xlsx
With ActiveWorkbook.Worksheets("BaubegleitendeErstprüfung")
.Unprotect
.Shapes.SelectAll
Selection.Delete
End With

ActiveWorkbook.Save
ActiveWorkbook.Close '...................................................................................Neu erstellte Arbeitsmappe schliessen

MsgBox DateiName & ".xlsx " & vbCrLf & "wurde gespeichert in:" & " " & vbCrLf & vbCrLf & PfadName & vbCrLf, _
vbInformation, "Baubegleitende Erstprüfung in Ablage speihern"

'**Verhindert dass eine Systemmeldung fragt ob das Book in XLSM gespeichert werden soll
Application.DisplayAlerts = True

End If
End Sub
Anzeige
AW: Du kannst nach...
13.10.2024 12:59:50
Thomas
Case es funktioniert doch.

Etwas kleines ist aber noch. Wenn ich die Datei offen lasse und im Verzeichnis die gerade generierte Datei mit dem Kopierten Inhalt lösche und danach den Befehl zum Kopieren wiederhole dann kommt eine Fehlermeldung. ActiveWorkbook und Activesheet ertragen sich auf einmal nicht mehr.
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige