1.8k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo
Auf der Suche nach einem Makro das zwischen zwei Druckern umschaltet, bin ich auf folgendes Makro gestoßen.

Public Sub SpecialPrinter()
Dim Drucker1 As String, Drucker2 As String
Drucker2 = ActivePrinter = "Epson Stylus Sx 430(Netzwerk)"
'Aktuellen Drucker auslesen
Drucker1 = Application.ActivePrinter
'Sonderdrucker einstellen
With Dialogs(wdDialogFilePrintSetup)
.Printer = Drucker2
.DoNotSetAsSysDefault = True
.Execute
End With
'Dokument drucken und Drucker wieder zurückstellen
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
Application.ActivePrinter = Drucker1
End Sub

Leider bleibt es an der markierten Stelle mit der Fehlermeldung

Fehler beim Kompilieren:
Sub oder Function nicht definiert

stehen.

Für Hilfe bei diesem oder Vorschläge für ein neues Makro, besten Dank.
Möglichst ohne die Nummer des Druckers "auf Ne02:" da die Anzahl der Drucker in unseren Firmennetzwerk häufig wechselt:

Mit freundlichen Grüßen
Hans

6 Antworten

0 Punkte
Beantwortet von kauz Mitglied (291 Punkte)
Hallo Hans,
ich kann den Fehler nicht beseitigen.... aber:

So wie ich das verstehe, fehlt die unterstrichene Funktion.
With Dialogs( wdDialogFilePrintSetup )

Also mal forschen, ob es an der Code-Fundstelle noch was gibt, was dazu gehört.

Diese Funktion schreiben kann ich leider nicht.

Gruß
Kauz
0 Punkte
Beantwortet von massaraksch Experte (3.1k Punkte)
Da du deine Frage im Bereich "Tabellenkalkulation" gestellt hast und "SelectedSheets" darin auftaucht nehme ich an, daß es dir um ein Excel-Makro geht.

Jedoch stammt der Makroteil

With Dialogs(wdDialogFilePrintSetup)...

aus einem Word-Makro. Das erkennt man am Parameter "wdDialogFilePrintSetup" (wd -> Word). Dies kann also nicht funktionieren.

Konkrete Vorschläge für ein korrektes Makro habe ich im Moment auch nicht.
Im Netz mal gezielt nach Excel-Druckmakros suchen...

mfg, Massaraksch
0 Punkte
Beantwortet von
Hallo
Als erstes besten Dank für eure Hilfe.
Es stimmt, das Makro stammt aus einer Word Anwendung ich hatte nur das "SelectedSheets" eingefügt.
Das „wd“ hatte ich leider nicht erkannt.
Habe ein anderes Makro im Netz gefunden, leider muss auch da immer die Portnummer des Druckers eingegeben werden.
Über weitere Lösungen würde ich mich sehr freuen!


Mfg
Hans
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Hans,
vielleicht hilt Dir das Makro weiter:

Sub Drucker()
ST_DRUCKER = Application.ActivePrinter
Druckerwahl = Application.Dialogs(xlDialogPrinterSetup).Show
If Druckerwahl = True Then
ActiveSheet.Range("A1:G50").PrintOut Copies:=1 'Druckbereich
End If
' Drucker wieder auf den "alten" zurück gesetzt
Application.ActivePrinter = ST_DRUCKER
End Sub

Gruß
fedjo
0 Punkte
Beantwortet von
Hallo fedjo
Werde dein Makro auf der Arbeit testen.
Mal sehen was meine Team- Mitglieder dazu sagen.

So weit Besten Dank!

Mit freundlichen Grüßen
Hans
0 Punkte
Beantwortet von
Hallo
Es hat zwar lange gedauert, nochmals Danke für eure Hilfe.
Ich habe jetzt noch ein weiteres Anliegen.
Das umschalten der Drucker haben wir gelöst, siehe Makro in Beispieldatei '' Etikett '' .
Die Beispieldatei enthält ein Entwurf zum drucken von Etiketten.


Etikett


Über Hile bei einem Makro das durch die Schaltfläche, Ausdruck Starten, Etiketten ausdruckt auf denen die Nummer in F1 und die Anzahl der zu druckenden Etiketten entsprechen der Steuerelemente 1 bis 4 angepasst werden.
Währe ich sehr dankbar.
Hoffe habe mein Anliegen verständlich erklärt.

Mfg
Hans
...