Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1608to1612
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

Variable abfragen und in vielen Skripten setzen

Variable abfragen und in vielen Skripten setzen
12.02.2018 12:33:38
Dennis
Hallo Zusammen,
ich habe ein paar Skripte die auf den PDF-Drucker zugreifen, um PDFs direkt zu erstellen. Nach vielem hin- und her konnte ich das Problem lösen, indem ich den Drucker im Skript jeweils direkt anspreche. Den Drucker konnte ich mit dem Befehl herausfinden:
MsgBox Application.ActivePrinter
Im weiteren verlauf des Skriptes wird also der gewünschte Drucker angesprochen:
strDrucker = Application.ActivePrinter
Application.ActivePrinter = "FreePDF auf Ne08:"
Jetzt ist es leider so, dass das wirklich gut auf immer dem selben PC funktionier. Wenn ich jetzt aber an einem anderen PC sitze ist der PDF-Drucker beispielsweise nicht mehr auf Ne08 sondern auf Ne06.
Ich hatte die Idee den Drucker einmal mit dem Vorherigen Skript abzufragen und dann als Variable automatisch in allen möglichen Spkripten einzutragen über ein "Eingabefeld", sprich:
Ich stelle einmalig den PDF-Printer als Standarddrucker, dann wähle ich das Skript auf 1 welches mir sagt auf welchem Ne der sitzt. Anschließend lasse ich per Abfrage / Eingabe diese Variable in das zweite Spript eintragen.
Hoffe Ihr versteht was ich möchte.
Liebe Grüße, Dennis.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable abfragen und in vielen Skripten setzen
12.02.2018 12:39:49
Nepumuk
Hallo Dennis,
warum benutzt du den eingebauten PDF-Drucker nicht? Beispiel:
Public Sub Beispiel()
    Tabelle1.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Test", _
        Quality:=xlQualityStandard, IncludeDocProperties:=False, _
        IgnorePrintAreas:=False, From:=1, To:=2, OpenAfterPublish:=False
End Sub


Gruß
Nepumuk
Anzeige
AW: Variable abfragen und in vielen Skripten setzen
12.02.2018 12:59:55
Dennis
Hallo Nepumuk,
danke für Deine Antwort.
Den nehme ich tatsächlich auch noch, jedoch wenn ich nicht davor den Standard-PDF-Drucker auswähle funktionieren die Seiteneinstellungen etc. nicht (gut)! Ich habe hier schon nächte davor gesessen - so geht es jedoch ohne probleme.
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Temp\" & Format(Now, "YYYY") & "_Planung_" & Titel & "_" & Format(Now, _
"YYYYMMDD_hhmm") & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
Hast Du eine Idee wie ich also eine Variable eintragen und dann in mehreren Skripten verwenden kann?
Die Variable soll hier drin stehen:
Application.ActivePrinter = "FreePDF auf Ne08:"
Wobei das Ne08 die Variable sein soll und das in mehreren Skripten in der Datei.
Vielen Dank.
Anzeige
Nix Variable, einfach NE-Drucker wählen!
12.02.2018 13:39:16
EtoPHG
Hallo Dennis,
Als Ansatz, versuch's mal so (auf versch. PC's):
Option Explicit
Sub Test_Temporarly_Change_ActivePrinter()
Const cPrinterName = "FreePDF"  ' Name des Netzwerkdruckers
Dim tAktPrinter As String
Dim tSetPrinter As String
tAktPrinter = Application.ActivePrinter       ' Save jetzigen Standarddrucker
tSetPrinter = setNePrinter(cPrinterName)      ' Wechsle zu Netzwerdrucker
If Left(tSetPrinter, 6) = "ERROR:" Then
MsgBox tSetPrinter, vbCritical + vbOKOnly, "Netzwerkdrucker suchen!"
Else
MsgBox "Anstelle dieser Msgbox dein Druck-Code hier einsetzen"
End If
Application.ActivePrinter = tAktPrinter       ' Wiederherstellen vorherigen Standarddrucker
End Sub
Private Function setNePrinter(tPrinterName As String) As String
Dim i As Integer
On Error Resume Next
For i = 1 To 99
Err.Number = 0
Application.ActivePrinter = tPrinterName & " auf Ne" & Format(i, "00") & ":"
If Err.Number = 0 Then
setNePrinter = Application.ActivePrinter
Exit For
End If
Next i
If setNePrinter = "" Then setNePrinter = "ERROR: Printer " & tPrinterName & vbCrLf & _
"ist nicht als Netzwerkdrucker angeschlossen!"
On Error GoTo 0
End Function
Gruess Hansueli
Anzeige
als PDF drucken
12.02.2018 17:08:12
Anton
Hallo Dennis,
probier es so:
  Dim Drucker As String
Drucker = Application.ActivePrinter
ActiveSheet.PrintOut ActivePrinter:="FreePDF"
Application.ActivePrinter = Drucker
mfg Anton
@muench-network oT
14.02.2018 19:01:24
Anton
AW:
15.02.2018 08:28:04
Dennis
Guten Morgen Anton,
danke für den Friendly reminder. ;-)
Ich war zwei Tage nicht ansprechbar, bzw. mit Fasching beschäftigt.
Jetz kam ich gerade zum Testen. Mein aktueller Code lautet:
strDrucker = Application.ActivePrinter
Application.ActivePrinter = "FreePDF auf Ne08:"
Den habe ich jetzt mal durch deinen ersetzt durch Deinen:
Dim Nachricht As Object, OutApp As Object
Dim AWS As String
Dim strDrucker As String
Dim Drucker As String
Drucker = Application.ActivePrinter
ActiveSheet.PrintOut ActivePrinter:="FreePDF"
Application.ActivePrinter = Drucker
Leider bleibt der Debugger hängen ganz am Ende des skriptes bei folgendem Code:
Application.ActivePrinter = strDrucker 'Standarddrucker wieder aktivieren
Jetzt ist die Frage: Muss mit Deiner Methode der Standarddrucker nicht mehr geändert werden?
Liebe Grüße
Dennis.
Anzeige
AW:
15.02.2018 16:48:05
Anton
Hallo Dennis,
nochmal mit Kommentaren:
Code in Zwischenablage:

Sub beispiel()
  Dim Drucker As String    'Variable definieren
  Drucker = Application.ActivePrinter  'Standarddrucker in Variable speichern
  ActiveSheet.PrintOut ActivePrinter:="FreePDF"  'aktives Arbeitsblatt als PDF drucken
  Application.ActivePrinter = Drucker  'Standarddrucker  wieder aktivieren
End Sub  

mfg Anton
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige