1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Druckereinstellungen via VBA festlegen

Discussion in 'Office-Programme' started by augustavind, Nov 12, 2015.

Thread Status:
Not open for further replies.
  1. Hallo zusammen.

    Ich habe folgendes Problem:

    Ich möchte für eine bestimmte Datei, welche jeden Tag einen neuen Dateinamen erhält, die immer gleichen Druckeinstellungen verwenden.
    Aktuell muss ich dies jeden Tag neu machen und das erscheint mir auf Dauer etwas zu umständlich.
    Ich würde mir gerne im Menüband ein Icon generieren, welches den Code ausführt.
    Folgende Einstellungen sollen gegeben sein:

    Drucker auswählen
    Format: A3, hoch
    Skalierung: auf eine Seite einpassen
    Nur markierten Bereich drucken
    Seite horizontal und vertikal zentriert

    Kann mir hierzu jemand mit einem Code helfen?

    Besten Dank im Voraus

    Grüße
    Andy
     
  2. chipchap

    chipchap Ganzes Gigabyte

    Mit VBA wird es gar nichts.
    Mit Visual Basic wirst Du graue Haare bekommen.

    Eventuell kann es mit einer Windows-Verknüpfung etwas werden, in der Du die Einstellungen festlegst.
     
  3. VB-Coder

    VB-Coder Megabyte

    ungetestet ...hab gerade keinen Drucker zur Verfügung
     
  4. Cold Steel

    Cold Steel Megabyte

    Warum legst du dir nicht eine Kopie des Druckertreibers an, die deine Einstellungen beinhaltet? Dann brauchst du nur diesen Drucker auswählen.
     
  5. Eric March

    Eric March CD-R 80

    Ich rate mal: was früher mit einem karnickelartig vermehrtem Druckertreiber saubequem war (hach ja…) klappt schon viel zu lange nicht mehr (seufz).

    Weiterhin behaupte ich mal frech, dass man mit Visual Basic die Bruchlandung produziert während VBA zu unserem Freund wird. :D

    Der Code… Word, nicht wahr? Ich habe den dringenden Verdacht im Bauche, dass es hier um Excel geht…

    Eric March
     
  6. Cold Steel

    Cold Steel Megabyte

    Naja, in dem Fall enttäusche ich dich mal und das gerne. Eines ist wohl richtig, mehrere Treibericons gibt es nicht mehr, wohl aber mehrere Einstellungen, die auch im Druckmenü auswählbar sind. Diewerden als unterschiedliche Drucler in jedem Druckmenü auswählbar angeboten.
    Ich machs ja u.a. so. Deswegen schlug ich es vor.
    MfG

    $druckertreiber.jpg
     
  7. Servus

    Ja, es handelt sich wieder einmal um Excel. Ich hab da noch so viele Ideen und Fragen, da kommt in näherer Zeit sicher noch mehr ��
    Ich werd den Code von VB-Coder morgen gleich mal checken. Die Sache mit der Druckertreiber-Spielerei ist nicht so einfach. Ich arbeite in einer großen Firma mit einer IT, die nicht wirklich viele Spielereien zulässt. Selbst Macros sind nicht wirklich gerne gesehen, aber geduldet. Mit erleichtern solche Dinge einfach ungemein die Arbeit weil es sich um immer wiederkehrende Arbeiten handelt.

    Grüße und Danke
    Andy
     
  8. chipchap

    chipchap Ganzes Gigabyte

    Du wirst die Sache mit VB nicht lösen können.
    Ich hab' auch sehr lange versucht.

    Das Druckerhandling ist das Stiefkind der VB-Programmierung.
    Sogar im über 1.000seitigen Kofler stehen da nur drei dürftige Seiten:
    http://www.amazon.de/Visual-Program...UTF8&qid=1447402107&sr=8-3&keywords=Kofler+vb.

    Eventuell wirst Du hier fündig:
    http://www.activevb.de/startseite/index.html,
    http://vb-tec.de/index.htm.
     
  9. VB-Coder

    VB-Coder Megabyte

    Ohne dir zu nahe treten zu wollen, aber ich wage zu behaupten das man mit VB.NET JEDE Druckereinstellung tätigen kann und somit auch für jedes Szenario eine Lösung findet. VBA ist nochmal eine andere Baustelle, aber selbst da geht sehr viel.

    Hast du dir mal die PrinterSettings Klasse im VB.NET angeschaut ? Darüber kann ich jede Einstellung tätigen. Von der Druckerauswahl, über die Ausrichtung, bis hin zum Duplexdruck, oder dem "virtuellen" Drucken in eine Datei. In den Vorgängerversionen bis VB6 konnte man sogar noch den Druckertreiber für jeden Drucker manuell festlegen. Das wurde aber mit VB.NET eingestampft, da Windows die Treiberverwaltung regelt.
     
  10. chipchap

    chipchap Ganzes Gigabyte

    Mag sein.
    Ich kenne nur VB6 und das war ein Krampf.
    Kann sein, daß ich das falsche Lehrbuch hatte.

    Bei Microsoft steht ja einiges:
    https://msdn.microsoft.com/de-de/library/9s96f6ft(v=vs.90).aspx.

    Aber alles was ich getestet habe, hatte keine brauchbaren Ergebnisse.
     
  11. Eric March

    Eric March CD-R 80

    @Cold Steel: ich hab' ja nicht umsonst was von saubequem geschrieben :D Klar gibts die Profile im Treiber, aber das ist unhandlich. Und in VBA unter Word dunnemals mit Einzelicons war das reichlich einfach mal Draft auszuwerfen oder eine PDF backen zu lassen.
    Die Gute, Alte Zeit halt.

    Was Excel angeht - das geht in Richtung Krampf. Aus bestimmten Gründen muss ich vage bleiben, aber mit Grafiken auf einer Seite als Anker Druckbereiche zu reorganisieren und das dann auf passende Treiber auszuwerfen geht nur mit Musklekraft.
    Wenigsten eine Markierung zum Druckbereich zu machen der dann ausgeworfen wird ist noch direkt machbar wenn man physisch druckt (In-Datei klemmt schon beim Angeben des Dateinamens).

    Wie genau soll sich die Aufgabe im Alltag stellen?

    Eric March
     
  12. VB-Coder

    VB-Coder Megabyte

    Erstmal würde ich über nen Update auf ne neue VB Version nachdenken. Ich würde dir VB 2013 empfehlen. Das komplette Visual Studio 2013 Express bekommst du hier >> klick << direkt von MS für lau. ACHTUNG : Die ISO hat über 6 GB !

    Bücher gibts einige gute je nachdem, wohin das ganze gehen soll. Die MSDN ist auf jeden Fall immer ein guter Anlaufpunkt.
     
  13. chipchap

    chipchap Ganzes Gigabyte

    Danke für den Hinweis.
    Kann das VB ausführbare .exe-Dateien erstellen?
     
  14. Also ich kann nach kurzzeitiger Spielerei und kleinerer Codeoptimierung sagen, dass es hervorragend funktioniert.
    Ich möchte nur noch mit einbinden, dass ich gleich zwei Kopien mit dem Befehl drucke. Ansonsten bin ich sehr glücklich damit.

    Grüße
    Andy
     
  15. bahnrat

    bahnrat Kbyte

    Hallo!

    Bei "ActivePrinter" den Namen des Druckers angeben wie er in der Systemsteuerung steht. Soll kein Drucker "gewählt" werden kann man diesen Parameter auch weglassen. Code ungetestet.

    Code:
    Sub A3Drucken()
    Dim strOldPrinter As String
    
    ' Standarddrucker merken
    strOldPrinter = Application.ActivePrinter
    
    ' Drucken
      With ActiveSheet
           With .PageSetup
                  .PrintArea = Selection.Address
                  .Zoom = False
                  .Orientation = xlPortrait
                  .PaperSize = xlPaperA3
                  .FitToPagesWide = 1
                  .FitToPagesTall = 1
           End With
          .PrintOut Copies:=2, ActivePrinter:="DruckerName"
      End With
    
    ' Standarddrucker wiederherstellen
    Application.ActivePrinter = strOldPrinter
    End Sub
    
    Gruß, René
     
  16. Servus zusammen.

    Ich hab schon wieder eine neue Frage.
    Ich habe folgenden Code implementiert:

    Code:
    
    
    Sub Test()
    Application.CommandBars("Worksheet Menu Bar").Enabled = False
    Application.DisplayFormulaBar = False
    Application.DisplayStatusBar = True
    Application.DisplayFullScreen = True
    Application.CommandBars("Full Screen").Visible = False
    ActiveWindow.DisplayGridlines = False
    ActiveWindow.DisplayHeadings = False
    ActiveWindow.DisplayHorizontalScrollBar = False
    ActiveWindow.DisplayVerticalScrollBar = False
    ActiveWindow.DisplayWorkbookTabs = True
    ActiveWindow.DisplayGridlines = False
    End Sub
    Code:
    
    
    Gibt es eine Möglichkeit zusätzlich zu verhindern, dass man den Fullscreen-Mode verlassen kann? Das geht ja im Moment recht leicht mit ESC

    Grüße
    Andy
     
  17. VB-Coder

    VB-Coder Megabyte

    Gibt es.

    und so aktiviert man sie wieder

    @chipchap: ja das geht
     
  18. Gibt's zusätzlich noch ne andere Möglichkeit das Beenden des Fulscreen zu unterbinden?
    Die ESC-Deaktivierung funktioniert super, allerdings endet er Fullscreen automatisch wenn ich die Fenstergröße ändere.
    Tut mir leid wenn ich blöd frage, aber ich bin absoluter VBA-Anfänger
     
  19. bahnrat

    bahnrat Kbyte

    Das lässt sich nicht wirklich wirksam unterbinden.
     
  20. Das hört sich nicht gut an
     
Thread Status:
Not open for further replies.

Share This Page