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

Application.Printcommunictaion Error

Forumthread: Application.Printcommunictaion Error

Application.Printcommunictaion Error
17.01.2020 15:06:00
Roger
Hallo zusammen
Ihr habt mir schon öfters geholfen. Nun steh ich wieder vor einem Problem.
Ich rufe über VBA das drucken auf. Darin enthalten ist nachstehender Code. Es kommt bei mir die Fehlermeldung Laufzeitfehler '1004' die Methode 'Printcommunication' für das Objekt '_Application' ist fehlgeschlagen.
Sub Seitenumbruch()
ActiveWindow.View = xlPageBreakPreview
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = ""
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.7)
.RightMargin = Application.InchesToPoints(0.7)
.TopMargin = Application.InchesToPoints(0.787401575)
.BottomMargin = Application.InchesToPoints(0.787401575)
.HeaderMargin = Application.InchesToPoints(0.3)
.FooterMargin = Application.InchesToPoints(0.3)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
Application.PrintCommunication = True
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = ""
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.7)
.RightMargin = Application.InchesToPoints(0.7)
.TopMargin = Application.InchesToPoints(0.787401575)
.BottomMargin = Application.InchesToPoints(0.787401575)
.HeaderMargin = Application.InchesToPoints(0.3)
.FooterMargin = Application.InchesToPoints(0.3)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA3
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
Application.PrintCommunication = True
Columns("CR:CR").Select
ActiveWindow.SelectedSheets.VPageBreaks.Add Before:=ActiveCell
ActiveWindow.SmallScroll Down:=18
Rows("71:71").Select
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
ActiveWindow.SmallScroll Down:=15
End Sub

Besten Dank im Voraus für euer Hilfe.
Gruss
Roger
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Application.Printcommunictaion Error
17.01.2020 15:35:32
Roger
Hat sich erledigt. Hab den falschen Drucker als Standarddrucker ausgewählt gehabt.
Danke
Anzeige
;
Anzeige

Infobox / Tutorial

Anwendung von PrintCommunication in VBA für Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und wechsle zum VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf einen der Einträge im Projektfenster.
    • Wähle Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:

    Sub Seitenumbruch()
       ActiveWindow.View = xlPageBreakPreview
       Application.PrintCommunication = False
       With ActiveSheet.PageSetup
           .PrintTitleRows = ""
           .PrintTitleColumns = ""
       End With
       Application.PrintCommunication = True
       ' Füge hier weitere Einstellungen hinzu
    End Sub
  4. Führe das Makro aus:

    • Schließe den VBA-Editor und gehe zurück zu Excel.
    • Drücke ALT + F8, wähle das Makro Seitenumbruch aus und klicke auf Ausführen.
  5. Überprüfe die Druckeinstellungen:

    • Stelle sicher, dass die Druckeinstellungen korrekt sind und der richtige Drucker ausgewählt ist.

Häufige Fehler und Lösungen

  • Laufzeitfehler '1004' - Methode 'Printcommunication' für das Objekt '_Application' ist fehlgeschlagen:

    • Lösung: Überprüfe, ob der Standarddrucker korrekt eingerichtet ist. In Roger's Fall war der falsche Drucker ausgewählt.
  • application.printcommunication = true error:

    • Lösung: Stelle sicher, dass Application.PrintCommunication auf True gesetzt ist, bevor du Druckeinstellungen änderst.

Alternative Methoden

  • Verwende Application.PrintCommunication nur für entscheidende Abschnitte:

    • Du kannst die Verwendung von Application.PrintCommunication auf die wichtigsten Teile deines Codes beschränken, um die Leistung zu verbessern und Fehler zu minimieren.
  • Verwenden eines anderen Druckers:

    • Manchmal kann der Wechsel zu einem anderen Drucker, der die erforderlichen Funktionen unterstützt, helfen.

Praktische Beispiele

Hier ist ein einfaches Beispiel zur Verwendung von Application.PrintCommunication in einem VBA-Skript:

Sub DruckeBericht()
    Application.PrintCommunication = False
    ' Druckeinstellungen anpassen
    With ActiveSheet.PageSetup
        .PrintArea = "A1:D10"
    End With
    Application.PrintCommunication = True
    ' Bericht drucken
    ActiveSheet.PrintOut
End Sub

In diesem Beispiel wird application.printcommunication auf False gesetzt, um die Druckeinstellungen ohne Unterbrechung vorzunehmen, bevor der Bericht gedruckt wird.


Tipps für Profis

  • Vermeide unnötige Setzungen: Setze Application.PrintCommunication nur dann auf False, wenn du wirklich Änderungen an den Druckeinstellungen vornimmst.
  • Debugging: Nutze Debug.Print innerhalb deines VBA-Codes, um die Werte von Application.PrintCommunication zu überwachen, während dein Code läuft.
  • Optimierung: Wenn du mehrere Druckeinstellungen ändern musst, gruppiere sie in einem Block, um die Performance zu erhöhen.

FAQ: Häufige Fragen

1. Was ist die Funktion von Application.PrintCommunication? Application.PrintCommunication steuert, ob Excel die Druckeinstellungen sofort an den Druckertreiber kommuniziert oder diese Änderungen zwischenspeichert, bis du True setzt.

2. Warum bekomme ich einen Fehler, wenn ich application.printcommunication = true setze? Dieser Fehler kann auftreten, wenn Excel versucht, mit einem nicht verfügbaren Drucker zu kommunizieren. Stelle sicher, dass der Standarddrucker korrekt eingerichtet ist.

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