Hallo,
habe folgendes Problem. Per Klick werden Bestell Listen erstellt, inkl. Formatierung (Druckereinstellung etc.) und anschließend gespeichert. Das ganze läuft soweit, nach so ca. 12-14 Kunden erscheint allerdings folgende Fehlermeldung.
"Die Methode Orientation für das Objekt Page.Setup ist fehlgeschlagen"
Kann man den Drucker per Befehl zurücksetzen?
Im Arbeitsblatt System R1 wird nach Start der aktuelle Drucker gespeichert. Irgendwie kann er nach den besagten 12-14x nicht mehr auf den Drucker zugreifen, der Code war vorher bissl kompakter, hab dann Speicherung des aktuellen Drucker's in diesem Arbeitsblatt getan, nur immer der gleiche nervende Fehler.
Danke
Gruss
habe folgendes Problem. Per Klick werden Bestell Listen erstellt, inkl. Formatierung (Druckereinstellung etc.) und anschließend gespeichert. Das ganze läuft soweit, nach so ca. 12-14 Kunden erscheint allerdings folgende Fehlermeldung.
"Die Methode Orientation für das Objekt Page.Setup ist fehlgeschlagen"
Kann man den Drucker per Befehl zurücksetzen?
Im Arbeitsblatt System R1 wird nach Start der aktuelle Drucker gespeichert. Irgendwie kann er nach den besagten 12-14x nicht mehr auf den Drucker zugreifen, der Code war vorher bissl kompakter, hab dann Speicherung des aktuellen Drucker's in diesem Arbeitsblatt getan, nur immer der gleiche nervende Fehler.
Visual Basic-Quellcode
- Worksheets("Angebot").Cells(1, 1).Select
- druckenzeile = 11
- druckenspalte = "F"
- druckbereich = Worksheets("angebot").Range("B" & Rows.Count).End(xlUp).Row
- If Worksheets("system").Range("r1") <> "" Then
- druckerprogramm = Worksheets("system").Range("r1")
- Application.ActivePrinter = druckerprogramm
- Call Drucken55
- Else
- Call Drucken
- End If
- Call pruefennetzlaufwerk
- If netzfehler = 0 Then GoTo ohnefehler
- If MsgBox("Netzlaufwerk momentan nicht verfügbar, möchten Sie einen alternativen Speicherort auswählen? Bedenken Sie, dass die Datei im Netzlaufwerk nicht aktualisiert wird.", vbYesNo) = vbNo Then MsgBox ("Kann Datei nicht speichern, überprüfen Sie das Netzwerkkabel oder starten Sie den PC neu!"): GoTo zuende1
- MyPath = GetExcelfolder
- If Right$(MyPath, 1) = "\" Then MyPath = Left$(MyPath, Len(MyPath) - 1)
- Application.ScreenUpdating = False
- sWks = "Bestell-Liste"
- spath = MyPath & "\Woechentliche_Bestellliste_für_Kunde_" & kKundennummer & "_" & kKundenname & "_" & datum & ".xlsx"
- GoTo ohnefehler1
- ohnefehler:
- Application.ScreenUpdating = False
- sWks = "Bestell-Liste"
- verzeichnis99 = laufwerk & "\Frische_Angebot_System\"
- dateiname99 = kKundennummer
- Call dateiverschieben
- spath = laufwerk & "\Frische_Angebot_System\Woechentliche_Bestellliste_für_Kunde_" & kKundennummer & "_" & kKundenname & "_" & datum & ".xlsx"
- ohnefehler1:
- Worksheets("Angebot").Copy
- ActiveSheet.name = sWks
- ActiveWorkbook.SaveAs spath
- Application.ScreenUpdating = True
- SAM1.Image20.Visible = True
- MsgBox ("Datei wurde fertig erstellt und wie folgt gespeichert: " & spath)
Visual Basic-Quellcode
- Sub Drucken55()
- With ActiveSheet.PageSetup
- .Zoom = False
- .FitToPagesWide = 1
- .FitToPagesTall = False
- .Orientation = xlLandscape
- .TopMargin = Application.CentimetersToPoints(0.5)
- .BottomMargin = Application.CentimetersToPoints(0.5)
- .LeftMargin = Application.CentimetersToPoints(0.5)
- .RightMargin = Application.CentimetersToPoints(0.5)
- .PrintArea = "$A$1:$" & druckenspalte & "$" & druckbereich
- .PrintTitleRows = "$1:$" & druckenzeile
- End With
- End Sub
Visual Basic-Quellcode
- Sub Drucken
- Dim test As Boolean
- On Error GoTo error
- Dim drucker As String
- weiter:
- If druckerprogramm = "Falsch" Then GoTo error
- If Application.ActivePrinter = "" And druckerprogramm = "" Then druckerprogramm = "Falsch": GoTo weiter
- If Application.ActivePrinter = "" And druckerprogramm <> "" Then druckerprogramm = Worksheets("system").Range("r1"): drucker = druckerprogramm: Application.ActivePrinter = drucker: GoTo weiter
- drucker = Worksheets("system").Range("r1"): Application.ActivePrinter = drucker
- Application.ActivePrinter = drucker
- With ActiveSheet.PageSetup
- .Zoom = False
- .FitToPagesWide = 1
- .FitToPagesTall = False
- .Orientation = xlLandscape
- .TopMargin = Application.CentimetersToPoints(0.5)
- .BottomMargin = Application.CentimetersToPoints(0.5)
- .LeftMargin = Application.CentimetersToPoints(0.5)
- .RightMargin = Application.CentimetersToPoints(0.5)
- .PrintArea = "$A$1:$" & druckenspalte & "$" & druckbereich
- .PrintTitleRows = "$1:$" & druckenzeile
- End With
- GoTo zuende
- error:
- MsgBox ("Bitte wählen Sie im Folgenden einen aktiven Drucker aus, damit entsprechende Parameter gesetzt werden können!")
- test = Application.Dialogs(xlDialogPrinterSetup).Show
- If test = True Then druckerprogramm = Application.ActivePrinter: Worksheets("system").Range("r1") = druckerprogramm
- If test = False Then MsgBox ("Sie müssen zwingend einen Drucker auswählen, um Bestell Listen zu erstellen!"): druckerprogramm = "Falsch"
- GoTo weiter
- zuende:
- End Sub
Danke
Gruss