Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Druckbereich in neuer Datei (.xls) speichern

Forumthread: Druckbereich in neuer Datei (.xls) speichern

Druckbereich in neuer Datei (.xls) speichern
20.02.2014 20:08:51
schluk5
Hallo,
Ich nutze folgenden Code um meinen Druckbereich als Pdf zu exportieren.

Private Sub CommandButton1_Click()
Dim varPath As Variant
varPath = Application.GetSaveAsFilename( _
InitialFileName:=ThisWorkbook.Path & "\" & ActiveSheet.Name, _
FileFilter:="PDF(*.pdf), *.pdf", _
Title:="Speichern als PDF")
If Not varPath = False Then
ActiveSheet.ExportAsFixedFormat 0, varPath, _
OpenAfterPublish:=True
End If
End Sub

Das funktioniert wunderbar.
Ich schaffe es nun leider nicht, dies so umzubauen, dass ich einen bestimmten Zellbreich (z.B. den Druckbereich) in einer neuen Datei (.xls) abspeichern kann.
Kann mir da jemand weiterhelfen?
Viele Gruesse,
schluk5

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Druckbereich in neuer Datei (.xls) speichern
20.02.2014 20:51:36
schluk5
Hallo Hajo,
Super. Vielen Dank. Das ist schon mal ein Spitzenanfang, wenn auch mit vielen Optionen, die ich vielleicht gar nicht brauche. Aber das werde ich dann sehen, wieviel ich davon uebernehme.
Nun steht in der Datei ja extra drin, dass Spaltenbreite und Zeilenhoehe nicht mit kopiert werden.
Weil dies nicht geht?
Anzeige
;
Anzeige

Infobox / Tutorial

Druckbereich in neuer Datei (.xls) speichern


Schritt-für-Schritt-Anleitung

Um einen bestimmten Zellbereich, wie beispielsweise den Druckbereich, in einer neuen Excel-Datei (.xls) zu speichern, kannst Du den folgenden VBA-Code verwenden:

Private Sub CommandButton1_Click()
    Dim varPath As Variant
    Dim newWb As Workbook
    Dim sourceRange As Range

    ' Definiere den Zellbereich, den Du speichern möchtest
    Set sourceRange = ActiveSheet.Range("A1:B10") ' Beispielbereich

    ' Speichere den neuen Dateipfad
    varPath = Application.GetSaveAsFilename( _
        InitialFileName:=ThisWorkbook.Path & "\" & ActiveSheet.Name & ".xls", _
        FileFilter:="Excel-Arbeitsmappe (*.xls), *.xls", _
        Title:="Speichern als Excel-Datei")

    If Not varPath = False Then
        ' Erstelle eine neue Arbeitsmappe
        Set newWb = Workbooks.Add
        ' Kopiere den definierten Bereich
        sourceRange.Copy
        ' Füge den Bereich in die neue Arbeitsmappe ein
        newWb.Sheets(1).Range("A1").PasteSpecial xlPasteAll
        ' Speichere die neue Arbeitsmappe
        newWb.SaveAs Filename:=varPath, FileFormat:=56 ' 56 für .xls
        newWb.Close
    End If
End Sub

Dieser Code ermöglicht es Dir, einen spezifischen Zellbereich in einer neuen Excel-Datei zu speichern. Stelle sicher, dass der gewünschte Bereich korrekt definiert ist.


Häufige Fehler und Lösungen

Fehler 1: "Dateiformat nicht unterstützt"

  • Lösung: Achte darauf, dass Du das richtige Dateiformat beim Speichern angibst. Verwende FileFormat:=56 für .xls-Dateien.

Fehler 2: "Kopieren des Bereichs fehlgeschlagen"

  • Lösung: Überprüfe, ob der angegebene Zellbereich korrekt ist. Stelle sicher, dass der Bereich existiert und nicht leer ist.

Alternative Methoden

Eine alternative Methode besteht darin, den Bereich manuell zu kopieren und in eine neue Datei einzufügen. Du kannst den gewünschten Bereich markieren, mit der rechten Maustaste klicken und "Kopieren" auswählen. Öffne dann eine neue Excel-Datei und füge den Inhalt dort ein. Diese Methode ist einfach, erfordert jedoch mehr manuelle Schritte.


Praktische Beispiele

  • Beispiel 1: Wenn Du den Druckbereich von A1 bis B10 speichern möchtest, passe einfach die Zeile Set sourceRange = ActiveSheet.Range("A1:B10") an.

  • Beispiel 2: Um mehrere Bereiche zu speichern, kannst Du die Union-Funktion verwenden, um verschiedene Zellbereiche zu kombinieren:

Set sourceRange = Union(ActiveSheet.Range("A1:B10"), ActiveSheet.Range("D1:D5"))

Tipps für Profis

  • Verwende Named Ranges: Statt feste Zellbereiche zu verwenden, kannst Du benannte Bereiche in Excel nutzen. Diese machen den Code flexibler und lesbarer.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in Deinen VBA-Code, um unerwartete Probleme abzufangen.


FAQ: Häufige Fragen

1. Frage: Kann ich den Druckbereich automatisch definieren?

  • Antwort: Ja, Du kannst den Druckbereich in VBA mit ActiveSheet.PageSetup.PrintArea festlegen, bevor Du den Bereich speicherst.

2. Frage: Funktioniert dieser Code in Excel 365?

  • Antwort: Ja, der Code sollte in Excel 365 sowie in früheren Versionen wie Excel 2016 oder Excel 2013 funktionieren. Stelle sicher, dass Du die Makros aktivierst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige