kann man von einer Arbeitsmappe nur ein Tabellenblatt speichern.
Gruß Stephan
kann man von einer Arbeitsmappe nur ein Tabellenblatt speichern.
Gruß Stephan
mit VBA
321. Einzelnes Register speichern
Sub Blattspeichern()
ActiveSheet.Copy
ActiveWorkbook.SaveAs FileName:="D:\Eigene Dateien\Hajo\" & ActiveSheet.Name & ".xls"
End Sub
Ansatz von guenter
Gruß Hajo
guter Ansatz: Ist es nun auch noch möglich, dem Benutzer die Wahl zu lassen, wo und unter welchem Namen er das Register speichern will (= das Fenster wie bei "speichern unter..." soll auftauchen)?!?
Gruß Stephan
immer die Aufgabe ganz beschreiben das spart Arbeit.
Gruß Hajo
soory dass ich die Aufgabe nicht komplett stelle, aber die Probelem treten immer nur nach und nach auf. Ich versuche dir mal zu erklärern, was der eigentliche Sinn meiner Aufgabe ist:
Ich habe eine Arbeitsmappe mit mehreren Registern (Tabellenblättern), die dadurch entstehen, dass der Benutzer Eingaben macht und aufgrund dieser Eingaben werden andere Zellen ausgefüllt. Damit nun ein "Ist-Stand" zur Verfügung steht, will ich das Tabellenblatt (und nur das) speichern. Soweit weiß ich nun Bescheid. Das Probelm was ich nun ncoh habe,ist dass von dem Tabellenblatt nur die Werte und Formate gespeichert werden sollen, aber keine Formeln mehr. Ich habe versucht, das Blatt in eine neue Datei zu kopieren, dann das Blatt mit deinem Befehl zu speichern, aber dann soltle das Makro das Blatt wieder löschen, was es aber nicht macht. Viell. bricht das Makro auf gleich nach der Dialogbox "speichern unter.." ab?!?
Kannst du mir weiterhelfen?
Gruß Stephan
so ganz komme ich mit Deiner Beschreibung nicht klar
Formel durch Werte ersetzen im neuen Blatt durch folgenden Zusatz
was Du mit Löschen meinst ist mir völlig unklar.
Gruß Hajo
das Tabellenblatt soll in der bestehenden Datei unverändert bleiben, also mit Formeln und Makroverknüpfungen etc.
in der gespeicherten Version aber sollen nur die Werte und Formate übernommen werden.
Mit löschen meinte ich das aktuelle Fenster, das ich aufgemacht habe.
ich schick dir mal mal meinen Code:
Speichername = ActiveSheet.Name
Cells.Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveWindow.Zoom = 75
Range("B1:M1").Select
Application.CutCopyMode = False
ActiveSheet.Copy
Application.Dialogs(xlDialogSaveAs).Show Speichername & ".xls"
ActiveWindow.Close
Das Makro macht alles bis auf das schließen des Windows!
Gruß Stephan
ich muß jetz weg.
Aber hast Du meinen Code getestet. Ich bin der Auffassung der macht genau das was Du willst.
Gruß Hajo
ersetze ActiveWindow.Close mal durch ActiveWorkbook.Close
Gruß
Jürgen
Um ein einzelnes Tabellenblatt in Excel als neue Datei zu speichern, kannst Du den folgenden VBA-Code verwenden:
Sub Blattspeichern()
ActiveSheet.Copy
ActiveWorkbook.SaveAs FileName:="D:\Eigene Dateien\" & ActiveSheet.Name & ".xls"
End Sub
ALT + F11, um den VBA-Editor zu öffnen.Einfügen > Modul, um ein neues Modul zu erstellen.Falls Du den Benutzer die Möglichkeit geben möchtest, den Speicherort und den Dateinamen auszuwählen, kannst Du den Code wie folgt anpassen:
Sub BlattspeichernMitDialog()
ActiveSheet.Copy
Application.Dialogs(xlDialogSaveAs).Show
End Sub
Fehler: Das Speicherfenster öffnet sich nicht.
Lösung: Stelle sicher, dass Du den richtigen Dialog verwendest. Überprüfe, ob der Code korrekt in ein VBA-Modul eingefügt wurde.
Fehler: Das gespeicherte Blatt enthält noch Formeln.
Lösung: Verwende den folgenden Code, um nur die Werte und Formate zu speichern:
Sub SpeichernOhneFormeln()
Dim Speichername As String
Speichername = ActiveSheet.Name
Cells.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlValues
Selection.PasteSpecial Paste:=xlFormats
Application.Dialogs(xlDialogSaveAs).Show Speichername & ".xls"
ActiveWindow.Close
End Sub
Eine weitere Möglichkeit, ein einzelnes Arbeitsblatt zu speichern, besteht darin, die Funktion „Speichern unter“ im Menü zu verwenden. Wähle das gewünschte Tabellenblatt aus, klicke auf „Datei“ > „Speichern unter“ und wähle den Speicherort sowie den Dateinamen aus.
Hier ist ein Beispiel, um ein einzelnes Blatt aus einer Arbeitsmappe zu speichern, wobei nur die Werte und Formate übernommen werden:
Sub SpeichernEinzelnesBlatt()
Cells.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlValues
Selection.PasteSpecial Paste:=xlFormats
ActiveWorkbook.SaveAs FileName:="D:\Eigene Dateien\NeuesBlatt.xls"
ActiveWindow.Close
End Sub
In diesem Beispiel wird ein neues Excel-Dokument erstellt, in das nur die Werte und Formate des aktiven Blattes kopiert werden.
Application.DisplayAlerts = False, um Warnmeldungen beim Schließen von Arbeitsmappen zu unterdrücken.1. Wie kann ich ein einzelnes Arbeitsblatt speichern, ohne das gesamte Workbook zu speichern? Du kannst das oben gezeigte VBA-Skript verwenden, um nur das aktive Tabellenblatt zu speichern.
2. Kann ich den Speicherort für das gespeicherte Blatt auswählen?
Ja, indem Du Application.Dialogs(xlDialogSaveAs).Show in Deinem VBA-Code verwendest, wird ein Dialog geöffnet, in dem Du den Speicherort auswählen kannst.
3. Wie speichere ich nur die Werte ohne Formeln?
Verwende die PasteSpecial-Methode mit dem Parameter xlValues, um nur die Werte zu speichern.