Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel-Datei als Hardcopy erstellen

Forumthread: Excel-Datei als Hardcopy erstellen

Excel-Datei als Hardcopy erstellen
13.12.2018 11:24:15
fox060381
Hallo zusammen,
ich habe eine große Excel Datei mit diversen Tabellenblättern und Diagrammen.
Einmal im Monat wird diese Datei an einem anderen Ort gespeichert und alle Formeln in den Tabellen werden gelöscht. Die vorhandenen Makros und vor allem die Verbindung der Diagramme zu den Tabellen dürfen nicht gelöscht werden.
Lässt sich dies mit VBA realisieren?
Ich habe schon im Forum gesucht aber leider scheitere ich beim Kopieren der Diagramme.
Danke für Eure Hilfe!
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Und wo ist das Problem...
13.12.2018 11:31:49
Beverly
Hi,
...wenn die Formeln bereits gelöcht wurden? Bezüge der Diagramme werden dabei nicht beeinträchtigt, wenn du die Mappe dann unter neuem Namen speicherst.


AW: Und wo ist das Problem...
13.12.2018 11:39:05
fox060381
Hallo!
Das Problem besteht darin, dass ich mit dem VBA Code, den ich bisher gefunden habe die Diagramme nicht kopiert bekomme.
Die Tabellen werden immer kopiert (ohne Formel), dann bricht das Makro ab.
Anzeige
AW: Und wo ist das Problem...
13.12.2018 11:40:09
fox060381
noch eine Info: Die Diagramme sind eigenständige Tabellenblätter
Dann poste doch mal deinen Code...
13.12.2018 11:45:06
Beverly
Hi,
...zum Kopieren - ohne den kann mann schließlich schlecht sagen, was nicht funktioniert, schließlich kann niemand hellsehen. Am besten lädst du auch gleich mal deine Mappe hoch (oder eine abgespeckte Kopie), damit man es testen kann.


Anzeige
AW: Dann poste doch mal deinen Code...
13.12.2018 14:00:21
fox060381

Sub Hardcopy()
MsgBox "Bla Bla Hinweis..."
Dim wb As Workbook, ws As Worksheet, sh As Shape
Set wb = Workbooks.Add(xlWBATWorksheet)
wb.Sheets(1).Name = "deleteMe"
For Each ws In ThisWorkbook.Worksheets
ws.Copy After:=wb.Sheets(wb.Sheets.Count)
Next
For Each ws In wb.Worksheets
UsedRange.Formula = UsedRange.Value 'Hier macht er eine Fehlermeldung wenn er zu  _
den Diagrammen kommt
For Each sh In ws.Shapes
sh.Delete
Next
Next
Do While wb.Connections.Count > 0
wb.Connections.Item(1).Delete
Loop
Application.DisplayAlerts = False
wb.Sheets("deleteMe").Delete
wb.SaveAs Replace(ThisWorkbook.FullName, ".xlsm", "_" & Format(Date, "yyyymmdd") & ".xlsx"), _
xlOpenXMLWorkbook
Application.DisplayAlerts = True
wb.Close False
End Sub

Anzeige
AW: Dann poste doch mal deinen Code...
13.12.2018 15:36:49
Beverly
Der Fehler kommt nicht bei Diagrammblättern sondern generell, denn es fehlt der Bezug zum laufenden Tabellenblatt. Diagrammblätter werden hier gar nicht berücksichtigt, da der Code sich explizit auf Tabellenblätter (For Each ws In wb.Worksheets) bezieht. So wird ein Schuh daraus:
      ws.UsedRange.Formula = ws.UsedRange.Value


Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Excel-Datei als Hardcopy erstellen


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei als Hardcopy zu erstellen, kannst du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf VBAProject (DeineArbeitsmappe) > Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub Hardcopy()
       MsgBox "Bla Bla Hinweis..."
       Dim wb As Workbook, ws As Worksheet, sh As Shape
       Set wb = Workbooks.Add(xlWBATWorksheet)
       wb.Sheets(1).Name = "deleteMe"
       For Each ws In ThisWorkbook.Worksheets
           ws.Copy After:=wb.Sheets(wb.Sheets.Count)
       Next
       For Each ws In wb.Worksheets
           ws.UsedRange.Formula = ws.UsedRange.Value 'Hier macht er eine Fehlermeldung wenn er zu den Diagrammen kommt
           For Each sh In ws.Shapes
               sh.Delete
           Next
       Next
       Do While wb.Connections.Count > 0
           wb.Connections.Item(1).Delete
       Loop
       Application.DisplayAlerts = False
       wb.Sheets("deleteMe").Delete
       wb.SaveAs Replace(ThisWorkbook.FullName, ".xlsm", "_" & Format(Date, "yyyymmdd") & ".xlsx"), _
       xlOpenXMLWorkbook
       Application.DisplayAlerts = True
       wb.Close False
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus, um die Hardcopy zu erstellen.


Häufige Fehler und Lösungen

  • Fehler beim Löschen der Formeln: Wenn du beim Ausführen des Codes eine Fehlermeldung erhältst, könnte es daran liegen, dass der Bezug zu den Diagrammen fehlt. Stelle sicher, dass du ws.UsedRange.Formula = ws.UsedRange.Value verwendest, um die Formeln korrekt zu ersetzen.

  • Diagramme werden nicht kopiert: Der Code bezieht sich nur auf Tabellenblätter. Um Diagramme zu berücksichtigen, passt du den Code entsprechend an.


Alternative Methoden

Eine Alternative zur Verwendung von VBA ist die manuelle Erstellung einer Hardcopy. Du kannst die Excel-Datei einfach als PDF speichern:

  1. Klicke auf Datei > Speichern unter.
  2. Wähle PDF als Dateiformat aus.
  3. Klicke auf Speichern.

Diese Methode ist einfach, aber möglicherweise nicht so flexibel wie das VBA-Skript.


Praktische Beispiele

Ein praktisches Beispiel für die Verwendung des VBA-Codes:

  • Monatliche Berichterstattung: Wenn du jeden Monat eine Hardcopy deiner Verkaufszahlen benötigst, kannst du das VBA-Skript anpassen, um spezifische Tabellenblätter zu kopieren und als Hardcopy zu speichern.

Tipps für Profis

  • Automatisierung: Du kannst das Makro so planen, dass es automatisch zu einem bestimmten Zeitpunkt ausgeführt wird. Nutze dazu die Windows Aufgabenplanung.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung im VBA-Code, um die Stabilität zu erhöhen. Zum Beispiel:

    On Error Resume Next

Damit wird der Code bei einem Fehler nicht abgebrochen, sondern setzt die Ausführung fort.


FAQ: Häufige Fragen

1. Was ist eine Hardcopy in Excel?
Eine Hardcopy in Excel bezieht sich auf eine statische Kopie der Daten, bei der alle Formeln in Werte umgewandelt werden, um die Integrität der Daten zu gewährleisten.

2. Kann ich Diagramme in eine Hardcopy einfügen?
Ja, indem du den VBA-Code anpasst, kannst du sicherstellen, dass auch Diagramme in der Hardcopy enthalten sind.

3. Gibt es eine einfache Möglichkeit, eine Hardcopy zu erstellen?
Ja, du kannst die Datei einfach als PDF speichern, was eine schnelle und einfache Methode darstellt, um eine Hardcopy zu erstellen.

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