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

Forumthread: Einzelne Seiten aus Druckbereich mit VBA kopieren

Einzelne Seiten aus Druckbereich mit VBA kopieren
Dirk
Hallo zusammen!
Ich habe in Excel einen Druckbereich definiert, der mehrere Seitenumbrüche enthält. Dieser wird nach Powerpoint übertragen.
Das funktioniert mit dem nachstehenden Code ganz gut.
Range(ActiveSheet.PageSetup.PrintArea).CopyPicture, Appearance:=xlScreen, Format:=xlPicture
Aber damit wird alles auf eine Seite eingefügt. Eine Auswahl in der Datei (z.B. erst A1 bis H20, dann H20 bis H40, ...) übertragen kann ich nicht, weil auf der Arbeit keine Makros laufen, außer in der personl.xls.
Meine Frage:
Kann man beim Kopieren die die Seitenumbrüche berücksichtigen. (Anschließend würde ich die über eine Schleife jeweils in eine neue ppt-Folie einfügen).
Vielen Dank für Eure Anregungen
Dirk
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Einzelne Seiten aus Druckbereich mit VBA kopieren
11.11.2011 14:16:08
guentherh
Hallo Dirk,
vielleicht hilft Dir das folgende, um eine Lösung zu finden
die Umbrüche referenzieren leider immer auf die erste Zelle des neuen Blatts
Public Sub umbrueche()
Dim i, j, Umbruch
Dim Ausgabe As String
Umbruch = 1
For i = 1 To VPageBreaks.Count
Debug.Print VPageBreaks(i).Location.Address
For j = 1 To HPageBreaks.Count
Debug.Print HPageBreaks(j).Location.Address
Ausgabe = "Umbruch " & Umbruch & " ist bei " & ActiveSheet.Cells(HPageBreaks(j).Location. _
Row, VPageBreaks(i).Location.Column).Address
Debug.Print Ausgabe
Umbruch = Umbruch + 1
MsgBox Ausgabe
Next j
Next i
End Sub
der Code funktioniert auch nur wenn mindestens 2 *2 Seiten zusammenkommen, für den Einsatz also noch deutlich erweitern.
Gruß,
Günther
Anzeige
AW: Einzelne Seiten aus Druckbereich mit VBA kopieren
11.11.2011 15:05:43
Dirk
Hallo Günter, das sieht vielversprechend aus.
Ich werde am Wochenende mal ein bißchen basteln.
Vielen Dank und Gruß
Dirk
;
Anzeige
Anzeige

Infobox / Tutorial

Einzelne Seiten aus Druckbereich mit VBA kopieren


Schritt-für-Schritt-Anleitung

  1. Druckbereich definieren: Stelle sicher, dass du in Excel einen Druckbereich mit mehreren Seitenumbrüchen festgelegt hast. Dies kannst du über das Menü Seitenlayout und Druckbereich tun.

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

  3. Modul hinzufügen: Klicke mit der rechten Maustaste auf VBAProject (deineDatei.xls) und wähle Einfügen > Modul.

  4. Code eingeben: Kopiere den folgenden VBA-Code in das neue Modul:

    Public Sub umbrueche()
       Dim i, j, Umbruch
       Dim Ausgabe As String
       Umbruch = 1
       For i = 1 To ActiveSheet.VPageBreaks.Count
           For j = 1 To ActiveSheet.HPageBreaks.Count
               Ausgabe = "Umbruch " & Umbruch & " ist bei " & ActiveSheet.Cells(ActiveSheet.HPageBreaks(j).Location.Row, ActiveSheet.VPageBreaks(i).Location.Column).Address
               Debug.Print Ausgabe
               Umbruch = Umbruch + 1
           Next j
       Next i
    End Sub
  5. Code ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle umbrueche aus und klicke auf Ausführen.

  6. Anpassungen vornehmen: Du kannst den Code anpassen, um die gewünschten Seitenbereiche zu kopieren und in PowerPoint einzufügen.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"
    Lösung: Stelle sicher, dass der Druckbereich korrekt festgelegt ist und dass du die richtigen Seitenumbrüche verwendest.

  • Fehler: "VBA läuft nicht"
    Lösung: Überprüfe, ob Makros in deiner Excel-Instanz aktiviert sind. Makros dürfen nur in der personl.xls-Datei laufen.


Alternative Methoden

Wenn du die Verwendung von VBA vermeiden möchtest, kannst du folgende alternative Methoden ausprobieren:

  1. Manuelles Kopieren: Du kannst die gewünschten Bereiche manuell auswählen und kopieren, indem du die STRG-Taste gedrückt hältst, während du die Zellen auswählst.

  2. Excel-Funktionen: Nutze Excel-Funktionen wie KONKATENIEREN oder VERKETTEN, um Inhalte aus verschiedenen Zellen zusammenzuführen, bevor du sie kopierst.


Praktische Beispiele

  • Beispiel 1: Um die Seitenumbrüche in einem Druckbereich zu erfassen und in eine PowerPoint-Präsentation zu übertragen, verwende den oben genannten VBA-Code.

  • Beispiel 2: Wenn du den Druckbereich mithilfe von ActiveSheet.PageSetup.PrintArea definierst, stelle sicher, dass du den richtigen Bereich angibst, z.B. "A1:H40".


Tipps für Profis

  • Debugging: Nutze Debug.Print, um die Adressen der Zellen mit Seitenumbrüchen während der Ausführung des Codes zu überprüfen. Dies hilft dir, Fehler schneller zu identifizieren.

  • Optimierung: Überlege, ob du die Schleifen im VBA-Code optimieren kannst, um die Effizienz zu steigern, insbesondere wenn du mit großen Datenmengen arbeitest.


FAQ: Häufige Fragen

1. Wie kann ich den Druckbereich in VBA dynamisch festlegen?
Du kannst den Druckbereich dynamisch festlegen, indem du die Range-Methode mit Variablen verwendest, die die gewünschten Zellen definieren.

2. Ist dieser Code mit allen Excel-Versionen kompatibel?
Der bereitgestellte VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, insbesondere in Excel 2010 und später. Achte darauf, dass Makros aktiviert sind.

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