Druckbereiche und Druckerauswahl -thePrintManager-

.. das wohl mächtigste Werkzeug in Bill Gates' Büro-Sippe. Ob reine Formeln, PowerQuery oder VBA. Hier bleiben kaum Wünsche unerfüllt.
Opelgerd
Beiträge: 6
Registriert: 14. Nov 2024, 08:38
Kontaktdaten:

Re: Druckbereiche und Druckerauswahl -thePrintManager-

#31

Beitrag von Opelgerd »

Moin,

die Vorfreude ist ungebrochen ;-)

LG
Benutzeravatar
d'r Bastler
Beiträge: 832
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 224 Mal
Danksagung erhalten: 118 Mal

Re: Druckbereiche und Druckerauswahl -thePrintManager-

#32

Beitrag von d'r Bastler »

Moin, ihr geduldigen Freunde der Drucksachen und E-Mail-Verteiler!

Hier kommt er: thePrintManager v 1.00 (tPM)

usf_PM.jpg
Was will das Ding?
Bei Workbooks mit mehreren Tabellen werden gelegentlich Auszüge benötigt, also Druckbereiche aus Arbeitsblättern. Sie sollen dann auf die jeweils sinnvollen Drucken oder E-Mail-Empfänger (Outlook) ausgegeben werden. Dazu kann man im tPM Bereiche und Adressaten festlegen und per Knopfdruck versorgen. Einzelblätter, aber auch Multipage-PDFs und E-Mail sind möglich. Ein paar Optionen, die den Workflow einfacher machen, kann man auch schon setzen.

Der tPM kann als quasi-AddOn in vorhandene Tabellen eingebunden werden. Vorhandener Datenbestand muss also nicht verändert werden.

Was tut das Ding?
Hat man tPM in ein Workbook mit mehreren Blättern eingebunden (s. Installation), liest er alle verfügbaren Drucker, den Standarddrucker und die vorhandenen Blätter in zwei ComboBoxen ein. Ob das geklappt hat, solltet Ihr als erstes prüfen.
Mit einem Klick auf das VBAsteleien-Logo öffnet/schließt sich der Optionsteil der Userform. Hier ist erst einmal der Button Vorhandene Druckbereiche importieren interessant. Findet er solche, werden sie in der Bereichstabelle unter dem Namen Gefunden x sichtbar.
Habt Ihr im Testverzeichnis neben dem Workbook und den zehn Code-Snippets aus de ZIP noch ein Unterverzeichnis für die PDFs angelegt, ist das schon in der ComboBox Speicherort zu finden.

Was müsst Ihr tun? / Installation
Legt ein Testverzeichnis mit einem Unterverzeichnis für die PDFs an und entpackt die ZIP dorthin. Dann braucht Ihr ein TestWorkbook als .xlsb. Es sollte ein paar Blätter enthalten, Druckbereiche können - müssen aber nicht, Beispieldaten mit der ein oder anderen E-Mail-Adresse wären gut.
Alle Controls (Buttons, Textboxen, usw.) des tPM verfügen über sog. Control Tipps, vulgo Bubble Helps, die helfen die Funktion zu verstehen. Die -wie auch die Rahmenüberschriften- aufmerksam zu besichtigen, kann ich nur empfehlen.
Jetzt werden alle Code-Snipptes über den VBE (Alt+F11 > rechte Maustaste im Feld Projekt) step-by-step importiert, wobei es zwar zwei usf_PM.f* gibt, davon aber nur eines importiert werden muss. die .xlsb speichern und schließen, wieder aufrufen und mit F12 tPM starten.
Ihr seht zusätzlich zu Euren Blättern den PrintManager. alle Änderungen dort erfolgen über die Userform - am besten, Ihr blendet das Blatt aus.
Vorläufig noch wichtig: Änderungen in den Optionen müssen mit dem Button speichern bestätigt werden. Das wird aber noch vereinfacht ...

Hier also die ZIP
PM.zip
Viel Spaß damit!
lg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Benutzeravatar
d'r Bastler
Beiträge: 832
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 224 Mal
Danksagung erhalten: 118 Mal

Re: Druckbereiche und Druckerauswahl -thePrintManager-

#33

Beitrag von d'r Bastler »

VORSICHT! ZU FRÜH GEFREUT!
FÜR EINEN TEST FEHLEN EIN PAAR ESSENTIELLE KOMPONENTEN! FÜR DIE ICH ERST NOCH EINE SETUP-ROUTINE BAUEN MUSS.


Also bitte vorerst einfach abwarten, SORRY! Leute :oops: schäm ...
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Benutzeravatar
d'r Bastler
Beiträge: 832
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 224 Mal
Danksagung erhalten: 118 Mal

Re: Druckbereiche und Druckerauswahl -thePrintManager-

#34

Beitrag von d'r Bastler »

So - damit Ihr wenigstens einmal Testen könnt, hier eine Step-by-Step-Anleitung für ein manuelles Setup, die sich aber ausschließlich an VBAstler und Windows-Vertraute richtet.

Im VBA-Editor (VBE)
1. Nach dem Import der CodeSnippets das Klassenmodul PM (PM.cls) entfernen: Im Projektfenster des VBE auswählen > rechte Maustaste > entfernen > NICHT exportieren.
2. Ein Blatt „PrintManager“ manuell hinzufügen und im VBE in dessen Eigenschaften den CodeNamen (benannt als (Name) in der ersten Zeile) in PM umbenennen.
3. Die usf_PM per Doppelklick öffnen, per Rechtsklick in das kleine Fenster Toolsammlung die Option Weitere Steuerelemente auswählen und dort Microsoft ListViewControl, Version 6.0 auswählen und bestätigen.
4. Im Menü Extras des VBE in den Verweisen die Microsoft Visual Basic for Applications Extensibility 5.3 aktivieren.
5. Das gleiche noch einmal mit Microsoft Windows Common Controls 6.0. Leider kann dieses kleine Mistding Probleme machen. Mehr dazu siehe unten.
6. Jetzt noch ein kleines Debugging: Im VBE ein beliebiges Modul öffnen > mit Strg+H den Ersetzen Dialog öffnen. Als Suchbegriff isAddress eingeben und durch nichts ersetzen (alternativ ein vorangestelltes Hochkomma). Als Suchoptionen Nur ganzes Wort und ganzes Projekt auswählen. Als Rückmeldung sollte 2 Ersetzungen vorgenommen erscheinen.
7. In DieseArbeitsmappe folgenden Code einfügen

Code: Alles auswählen

Sub WorkBook_Open()
Application.Onkey "{F12}", "PrintManager"
End sub
8. Die Mappe speichern und neu starten.

In der UserForm thePrintManager, Aufruf mit F12
1. Als erstes bitte die beiden Comboboxen rechts [Auswahl] auf ihren Inhalt kontrollieren.
2. Dann einen Drucker (zum Testen empfehle ich PDF, spart Papier) und eine Tabelle auswählen, dem Druckbereich einen Namen geben und Start- und Endzelle eintragen. Ist im Druckbereich eine Mailadresse als Ziel vorhanden, deren Zelladresse in die @-Textbox eintragen.
3. Mit dem Button neu wird der Bereich gespeichert und steht im PM zur Verfügung.
4. Per Klick auf das VBAsteleien-Logo die Optionen einblenden. Dort alle Häkchen (außer USF schließen) setzen und Speicherort und Dateinamen auswählen
5. Mit dem Button speichern werden die Optionen dauerhaft gespeichert.

TroubleShooting Common Controls
Zu Punkt VBE 5: Hinter der Bezeichnung versteckt sich die C:\WINDOWS\SysWO64\MSCOMCTL.OCX, zu der es hier weitere Informationen gibt: Dieses kleine Mistding wird wohl noch die größte Herausforderung werden. Während es als Verweis in meiner Originalmappe selbstverständlich zur Verfügung steht (es also auf meinem PC vorhanden sein muss) kann ich es für meine Testmappe nicht finden. Erst der Download bei Microsoft und dann die Einbindung als Verweis per Durchsuchen > Dateifilter .ocx hat dann geklappt.

Sorry, liebe VBAstler für diesen Mehraufwand (15 - 20 Minuten). Ich hoffe ich kann Euch das mit einer Setup-Routine bald ersparen.

Für Rückmeldungen bin ich dennoch dankbar :oops:

lg
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Benutzeravatar
d'r Bastler
Beiträge: 832
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 224 Mal
Danksagung erhalten: 118 Mal

Re: Druckbereiche und Druckerauswahl -thePrintManager-

#35

Beitrag von d'r Bastler »

So - und hier nun doch eine Beispielmappe!

Es hat sich gezeigt, dass in der obigen Step-by-step noch ein kleiner Debugger notwendig ist: Im Code bitte sPDF durch sPath ersetzen ( 1x) oder die Zeile auskommentieren.

In der Beispielmappe müssen die zwei Einträge bei Euch vorhandenen Druckern zugeordnet werden.

Viel Glück!
ImportTest.xlsb
lg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Opelgerd
Beiträge: 6
Registriert: 14. Nov 2024, 08:38
Kontaktdaten:

Re: Druckbereiche und Druckerauswahl -thePrintManager-

#36

Beitrag von Opelgerd »

Moin,

das hört sich ja alles ziemlich kompliziert an....

Hoffe das Ganze macht nicht zu viel Arbeit....

Grüße

Klemens
Benutzeravatar
d'r Bastler
Beiträge: 832
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 224 Mal
Danksagung erhalten: 118 Mal

Re: Druckbereiche und Druckerauswahl -thePrintManager-

#37

Beitrag von d'r Bastler »

Moin allerseits,

und wenn man jetzt noch das Modul mdlMultiJobs entfernt und durch das angehängte ersetzt, hat man gute Chancen einigermaßen realistisch testen zu können.
mdlMultiJobs.bas
Viel Erfolg! und sehr gerne Rückmeldungen! Auch wenn's crasht und garnix tut. Danke!!




Tja - zusammenfassend muss ich eingestehen, dass sich mein ursprüngliches Konzept, dass man den PrintManager in vorhandene Arbeitsblätter importieren kann, ohne die Daten dort zu verändern, nicht aufgegangen ist. Die Thematik Verweise hatte ich nicht auf dem Schirm und sehe im Moment auch speziell für die Microsoft Windows Common Controls 6.0 keine Möglichkeit, wie ich das mit dem bisherigen Konzept realisieren kann. Late Binding für die Extensibility ist nicht das Problem, aber eben die MSCOMCTL.OCX.

Also muss ein neues Konzept her, das ich dann als neues Thema hier einstellen werde.

Diesmal soll das so vor sich gehen: Eure vorhandene Mappe und der PrintManager werden gleichzeitig geöffnet und dann der PM in die vorhandene integriert. Um Namenskonflikte zu vermeiden bekommen alle PM-Komponenten und Variablen ein entsprechendes Präfix. Außerdem wird der PM mit mehr Beispieldaten daherkommen, die ein anschauliches Testen auch ohne Eure Daten ermöglicht. Einige Vereinfachungen in der Handhabung werden nicht fehlen.

In der dann nächsten Version werde ich dann wohl auf meine geliebte (aber leider veraltete) ListView verzichten. Dann bleibt hoffentlich auch der Ärger mit dem .OCX erspart.

Und was bleibt? Die schönste Freude ist doch die Vorfreude :D

Ach ja - und @Klemens: natürlich ist das ein bisschen (mehr) Arbeit. Aber da kenne ich nix: denn: Arbeit.Macht.Spaß (eines meiner Lieblings-T-Shirts, das ich besonders gerne in Urlaubsgegenden trage - mit sehr gemischten Reaktionen ... :mrgreen:

lg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
knobbi38
Beiträge: 25
Registriert: 20. Okt 2024, 14:15
Hat sich bedankt: 2 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Druckbereiche und Druckerauswahl -thePrintManager-

#38

Beitrag von knobbi38 »

Hallo,

vielleicht ist dieser Link https://10tec.com/articles/excel-vba-li ... mples.aspx ja hilfreich. Dort wird auch eine Möglichkeit aufgezeigt, ein Listview zur Laufzeit zu kreieren.

Gruß
Knobbi38
Folgende Benutzer bedankten sich beim Autor knobbi38 für den Beitrag:
d'r Bastler
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste