Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1824to1828
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Drucker mit VBA ändern

Drucker mit VBA ändern
20.04.2021 16:05:16
Andreas
Hi zusammen,
habe in einer Datei eine VBA, die für diese Datei einen Drucker nutzt, der nicht als Windows-Standartdrucker hinterlegt ist.
Funktioniert auch alles super, aber hätte gerne, dass danach wieder der Standartdrucker aktiviert wird.

Sub DruckeBereich()
Dim strDruckerAktiv As String
Application.ActivePrinter = "TEC B-SA4T (203 dpi) auf Ne02:" 'ActivePrinter: Ausdruck = "TEC B-SA4T (203 dpi) auf Ne02:"
strDruckerAktiv = Application.ActivePrinter
Dim i, max As Integer, vz, bz
max = Sheets("Eingabe").Range("C6").Value
If max  40 Then max = 40
For i = 1 To max
vz = i * 2 - 1: bz = i * 2
Worksheets("Palettenaufkleber").Range("A" & vz & ":D" & bz).PrintOut Copies:=1 'PrintOutPreview
Next i
max = Sheets("Eingabe").Range("C8").Value
If max  500 Then max = 500
For i = 1 To max
vz = i * 2 - 1: bz = i * 2
Worksheets("PE-Aufkleber Einzel").Range("A" & vz & ":D" & bz).PrintOut Copies:=1 'PrintPreview
Next i
End Sub

Vielen Dank Vorab
Gruß Andreas

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Drucker mit VBA ändern
20.04.2021 16:11:04
Hajo_Zi
Hallo Andreas,
nach folgendem Prinzip

Sub Faxen()
savPrinter = ActivePrinter		' aktuellen Drucker auslesen
ActivePrinter = "WinFax Pro 9.0"	' anderen Drucker einstellen
ActiveDocument.PrintOut Background:=False	' actives Dokument drucken in Word
ActivePrinter = savPrinter				' Drucker wieder zurückstellen
End Sub
GrußformelHomepage
Anzeige
AW: Drucker mit VBA ändern
21.04.2021 09:03:10
Andreas
Guten Morgen Hajo,
Danke für deine Rückmeldung und den Lösungsvorschlag.
Leider bin ich noch sehr unerfahren was VBA angeht.
Habe noch einen zweiten Vorschlag bekommen, bei dem mir direkt meine VBA umgebaut wurde, diese hat funktioniert.
Deshalb hab ich dann nicht versucht deinen auch noch einzubauen, Danke dir für dein Verständnis.
Gruß Andreas
AW: Drucker mit VBA ändern
20.04.2021 17:18:35
Herbert_Grom
Hallo Andreas,
probiers mal damit:

Sub DruckeBereich()
Dim strDruckerAktiv$, i%, max%, vz, bz, sStdDrucker$
'*Standarddrucker sichern
sStdDrucker = Application.ActivePrinter
Application.ActivePrinter = "TEC B-SA4T (203 dpi) auf Ne02:"
'ActivePrinter: Ausdruck = "TEC B-SA4T (203 dpi) auf Ne02:"
strDruckerAktiv = Application.ActivePrinter
max = Sheets("Eingabe").Range("C6").Value
If max  40 Then max = 40
For i = 1 To max
vz = i * 2 - 1: bz = i * 2
Worksheets("Palettenaufkleber").Range("A" & vz & ":D" & bz).PrintOut 'PrintPreview
Next i
max = Sheets("Eingabe").Range("C8").Value
If max  500 Then max = 500
For i = 1 To max
vz = i * 2 - 1: bz = i * 2
Worksheets("PE-Aufkleber Einzel").Range("A" & vz & ":D" & bz).PrintOut 'PrintPreview
Next i
'*Standarddrucker wieder herstellen
Application.ActivePrinter = sStdDrucker
End Sub
Servus
Anzeige
AW: Drucker mit VBA ändern
21.04.2021 08:59:11
Andreas
Guten Morgen Herbert,
Danke für deine Zeilen, hab ich so übernommen und funktioniert. Vielen Dank.
Eine Verständnisfrage, du hast diese Zeile gestrichen:
Dim i, max As Integer, vz, bz
Wenn man sie aktiv lässt funktioniert es auch nicht, habe sie daher natürlich auch gelöscht.
Aber eigentlich war ich der Meinung, diese Zeile wäre wichtig?
Kannst du mir erklären was sie bedeutet und wieso ich diese nicht mehr benötige?
Vielen Dank vorab
Gruß Andreas
AW: Drucker mit VBA ändern
21.04.2021 09:32:58
Herbert_Grom
Hallo Andreas,
hast du dir meinen Code wirklich genau angesehen? Deine Dimensionierungen sind immer noch vorhanden, aber da wo sie hingehören, nämlich ganz oben! Du solltest auch noch vz, bz, in vz% und bz% ändern! Wenn für Variablen keine Dimensionierung angegeben wird (hatte ich noch für vz und bz vergessen!), dann werden Variablen als "Variant" dimensioniert. Hier eine kleine "Variablen-Info":
Anstatt "as ..." etc., kann man die folgenden Kürzel verwenden:
$ für "as String"
@ für "as Currency" mit 4 Nachkommastellen, ist genauer als "Double"!
# für "as Double" mit Fließkommastellen.
% für "as Integer" max "32.767", ohne Nachkommastellen
& für "as Long" größer als integer, ohne Nachkommastellen
"as Variant" kann man sich ganz sparen, denn ohne weitere Angabe wird jede Variable als "Variant" behandelt!
Ich stelle dabei dem Variablen-Namen den 1. Buchstaben der Variablen-Bezeichnung voran. Damit weiß ich immer, welche Art von Variable ich da vor mir habe. Außerdem versuche ich kryptische, abgekürzte Variablennamen, so gut es geht, zu vermeiden, denn so wird der Code sehr viel lesbarer! Auch für mich selbst!
Denn nach Monaten oder sogar Jahren, kann ich selbst meinen Code sonst nur sehr viel schwerer lesen.
Speicherverbrauch der einzelnen Variablentypen:
Integer 2 Byte Ganzzahlen -32.768 bis 32.767
Long 4 Byte Ganzzahlen -2.147.483.648 bis 2.147.483.647
LongLong 8 Byte Ganzzahlen ca. ± 9 Trillionen
Currency 8 Byte skalierte Ganzzahlen ca. ± 9 Billionen, 4 Nachkommastellen
Double 8 Byte Gleitkommazahl
Date 8 Byte Datum und Zeit
Object 4 Byte abhängig vom Objekt
String Anz. Zeichen * 2 Texte
Currency ist intern eine Ganzzahl, die durch 10.000 geteilt wird und 4 feste Nachkommastellen hat. Im Gegensatz zu „normalen“ Fließkommazahlen ist das ein sehr genaues Rechenverfahren und daher besonders im Zusammenhang mit Geldbeträgen zu empfehlen.
Servus
Anzeige
AW: Drucker mit VBA ändern
21.04.2021 09:38:52
Andreas
Achja, da ganz oben ist es ja.
Hab das jetzt so angepasst:
Dim strDruckerAktiv$, i%, max%, vz%, bz%, sStdDrucker$
Warum hab ich allerdings noch nicht ganz verstanden.
Was ist den der Unterschied zwischen Variable und Variante?
Gruß Andreas
AW: Drucker mit VBA ändern
21.04.2021 09:41:41
Herbert_Grom
Lies doch mal bitte meinen Text genau und lass das "e" bei "Variant e" weg, denn es ist eine Variable, die als Variant dimensioniert wurde!
AW: Drucker mit VBA ändern
21.04.2021 14:58:25
Andreas
Alles klar Herbert.
Danke dir und einen schönen Mittag noch.
Gruß Andreas
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge