Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1888to1892
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

Combox Druckerauswal-zellbereich

Combox Druckerauswal-zellbereich
25.06.2022 01:01:23
K.S.Berlin
hallo liebes Forum
wollte mich hier auf diesem Weg mal informieren da ich nicht passendes gefunden habe
und Zwar habe ich eine Combobox für mein Etiketten Drucker ersteht und mit einer Vorauswal befühlt. Ich möchte damit einzelne Zell-bereiche für die Druckerauswal auswählen können, und über eine TextBox oder Zellbezug möchte ich die Menge der zu druckenden Exemplare drucken können. Meine Frage habt ihr eine gute Seite oder Anleitung zum Nachlesen
"A36;E36" (Faulty)
"A36;E36"( Aktuelles Datum)
Dies ist mein bisher zusammengestellter Ansatz was ich zu meinem Thema gefunden habe:
https://www.herber.de/bbs/user/153754.xlsm
Sub CB_Fuellen()
With Worksheets("Tabelle1").ComboBox1
.AddItem "Faulty"
.AddItem "Acktuelles Datum"
End With
End Sub Sub DruckeBereich()
Range("A34:E34").PrintOut Copies:=1
Range("A36:E36").PrintOut Copies:=1
Dim Anzahl As Integer
ActiveWindow.SelectedSheets.PrintOut Copies:=Anzahl, Collate:=True
End Sub

Private Sub TextBox7_Change()
End Sub

37
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combox Druckerauswal-zellbereich
25.06.2022 10:15:23
ralf_b
Hallo Kay,
Wie dir schon öfter erklärt wurde, solltest du die Grundlagen von VBA verinnerlichen. So ganz ohne Fortschritte beim Codeverstehen werden das immer nur ewig lange Threads oder ganz ganz Kurze. Damit du verstehst was ich meine.

Dim Anzahl As Integer
ActiveWindow.SelectedSheets.PrintOut Copies:=Anzahl, Collate:=True
"Anzahl" ist eine Variable. Die wird direkt vor der Nutzung im Printoutbefehl erstellt. Aber sie hat noch keinen Wert, bzw. da sie ein Integer ist, dann 0. Aber Null Kopien macht so gar keinen Sinn.
Angewendet auf dein Beispiel: vorrausgesetzt die Textbox Exemplare hat die LinkedCell auf C13 gelegt.

Dim Anzahl As Integer
Anzahl = Range("Tabelle1!C13").value
ActiveWindow.SelectedSheets.PrintOut Copies:=Anzahl, Collate:=True

Anzeige
AW: Combox Druckerauswal-zellbereich
25.06.2022 11:34:40
Kay
hallo Ralf_b deine Kritik habe ich zu herzen genommen, des wegen habe ich hier ja auch nur gefragt wo man zu meinem Themar sich belesen kann. Ich habe nicht nach eine .Fertigen Lösung gefragt. Die Excel Datei so wie VBA in meiner Themen Eröffnung waren nur zur Veranschaulichung
AW: Combox Druckerauswal-zellbereich
25.06.2022 17:18:34
ralf_b
Hallo Kay,
glaubst du tatsächlich das hier Jemand eine geheime Seite zum Thema "Ausdrucken" aus dem Ärmel zieht. Es ist alles online zu finden. Aber man muß einfach verstanden haben wie VBA funktioniert. Dann ist der Rest relativ einfach.
Ich kann mir vorstellen das du mit meinem Tip mit der LinkedCell darauf gekommen bist, das auch auf deine Combobox anzuwenden. Du hast doch in dem Barcode-Blatt nur die beiden Bereiche. Somit kannst du die Linkedcell auslesen und im Code die beiden Bereiche entsprechen mit einem select case zuordnen.
Anzeige
AW: Combox Druckerauswal-zellbereich
25.06.2022 19:38:49
Kay
hallo ralf_b
Noch mal ich habe wie bei der Eröffnung Beschreibung nicht nach einer fertigen Lösung gefragt noch gehe ich davon aus- bzw. erwarte das mir jemand zu meinem Anliegen eine fedrige seit vorschlägt wo alle Lösungen auf dem Teller Liegen. Ich habe mich gerade mit der Thematik beschäftigte und zum Zeitpunkt der Erhöhung des Traits noch keinen Ansatz gehabt dazu als VBA Anfänger !!! Es hätte ja sein können das jemand eine gute Seite weiß wo ansatzweise Tipps sind die ich aufgreifen kann zum Thema ComboBox was den aufbau der VBA Anweisung betrifft . Und nur ein Tipp- abgesehen von deiner kleinen Ergänzungen habe ich mein Anliegen schon fas selber lösen können auch, wen noch Fehler drin sind! Ich habe meine Vorgaben in die VBA hinterlegt so das in A34 meine Angabe eingetragen werden. Über das Eigenschaft Fenster habe ich die Zelle zugewiesen. Zum Schluss habe ich vorerst den Druckerbereich auf die Zelle gelegt zum Drucken.(Leider kann ich die Drucker Funktion nicht Testen da mir gerade der Drucker Flöten gegangen ist)

Sub CB_Fuellen()
With Worksheets("Tabelle1").ComboBox1
.AddItem "Faulty"
.AddItem Format$(Date, "dd/mm/yyyy")
End With
End Sub

Sub DruckeBereich2()
Range("A34").PrintOut Copies:=1
Dim Anzahl As Integer
Anzahl = Range("Tabelle1!C13").Value
ActiveWindow.SelectedSheets.PrintOut Copies:=Anzahl, Collate:=True
End Sub

Anzeige
AW: Combox Druckerauswal-zellbereich
25.06.2022 21:02:51
ralf_b
ich hatte mir das so vorgestellt. Ungetestet.

Sub DruckeBereich2()
Dim druckbereich  As Range
Dim Anzahl As Integer
'combobox1 linked cell  = c10
Select Case Range("Tabelle1!C10").Value
Case "Faulty": Set druckbereich = Range("Name des Barcodeblattes!A34:E34")
Case Format$(Date, "dd/mm/yyyy") : Set druckbereich = Range("Name des Barcodeblattes!A36:E36")
End Select
Anzahl = Range("Tabelle1!C13").Value
druckbereich.PrintOut Copies:=Anzahl, Collate:=True
End Sub

AW: Combox Druckerauswal-zellbereich
25.06.2022 21:38:45
Kay
Hallo Danke ralf_b ich werde mir deine Lösung hier kopieren und mir morgen mal anschauen und Testen. Sehe noch nicht komplett durch aber komme noch dahinter. Ich hoffe du nimmst mir mein letzten Beitrag nett krumm
Anzeige
AW: Combox Druckerauswal-zellbereich
25.06.2022 21:43:17
ralf_b
ich sehe gerade das ich mich geirrt habe. Der Druckbereich ist ja im selben Blatt und nicht im Barcodeblatt. Oder war das nur als Beispiel gedacht?
AW: Combox Druckerauswal-zellbereich
25.06.2022 22:18:56
Kay
ja die ComboBox und der Druckerbereich befinden sich im selben Tabellen Blatt
AW: Combox Druckerauswal-zellbereich
26.06.2022 10:08:12
Kay
Hallo ralf_ ich habe deine Lösung gerade bei mir eingesetzt, leider führt es zu einer Fehlermeldung
"Laufzeitfehler`91`:
Objektvariable oder With-Blockvariable nicht festgelegt"
AW: Combox Druckerauswal-zellbereich
26.06.2022 10:32:32
ralf_b
ich schließe daraus das du den Code ohne Anpassung übernommen hast. Richtig?
AW: Combox Druckerauswal-zellbereich
26.06.2022 10:47:53
Kay
Ich habe damit nur sagen wollen das deine Original Version zu Fehlermeldung führt -nix weiter
das ist mein versuch zu deiner Version -Führ aber noch zur gleichen Fehlermeldung! Sitzt gerade in der Hitze und Brühte darüber .

Sub DruckeBereich2()
Dim druckbereich  As Range
Dim Anzahl As Integer
'combobox1 linked cell  = c10
Select Case Range("C10").Value
Case "Faulty": Set druckbereich = Range("A34:E34")
Case Format$(Date, "dd/mm/yyyy"): Set druckbereich = Range("A36:E36")
End Select
Anzahl = Range("C13").Value
druckbereich.PrintOut Copies:=Anzahl, Collate:=True
End Sub

Anzeige
AW: Combox Druckerauswal-zellbereich
26.06.2022 10:59:38
Kay
Ich verstehe gerade nur so viel das du die Anweisungen verschachtelt in einem Block durchreichen tust um eine reihe von Anweisungen auszuführen. Werde aber aus der Objektvariable nicht ganz schlau
AW: Combox Druckerauswal-zellbereich
26.06.2022 13:10:53
Kay
Leider bekomme ich deine wersion nicht zum laufen,den dafür ist mein Wissen noch nicht ausreichend
Ich denke Mal ich bleibe vorerst bei meiner wersion (auch wenn es nicht Fehlerfrei ist)
AW: Combox Druckerauswal-zellbereich
26.06.2022 13:16:19
ralf_b
also, ich denke das du deinen Controls nicht die Linkedcell eigenschaft angepasst hast. Damit werden die Werte der Controls in das Tabellenblatt geschrieben. Fehlt das, dann sind die Zellen leer. Wenn du mit Anzahl = 0 den Print-Befehl aufrufst, dann gibts den Fehler.
Anzeige
AW: Combox Druckerauswal-zellbereich
26.06.2022 13:53:38
Kay
wen ich dich richtig verstehe meinst du das Eigenschaftsfenster der Combobox! dies ist schon längst angepasst, sonst könnte ich meine VBA Version gar nicht ausführen (Linkedcell:Tabelle1!A34:E34).Der Fehler muss woanders liegen. Leider kann ich nicht identifizieren wo der Fehler in deiner VBA Block -Anweisung liegt. Batten und Combobox sind auch zugewiesen !
AW: Combox Druckerauswal-zellbereich
26.06.2022 13:59:09
ralf_b
Linkedcell:Tabelle1!A34:E34 Wieso dies? Linkedcell für Faulty und akt.Datum ist C10 und für Exemplare C13
AW: Combox Druckerauswal-zellbereich
26.06.2022 14:27:28
Kay
sorry dies war von meiner Version noch drin da ich von der Combobox aus dort den Eintrag gemacht habe-damit die Combobox weis wo er es eintragen muss !
Aber wen ich es so mache wie du Sagt (Linkedcell C10:C13) habe ich immer noch die Fehler Meldung
Anzeige
AW: Combox Druckerauswal-zellbereich
26.06.2022 15:11:12
ralf_b
naja dann weist du ja was du tun must. ich kann nicht in deine Datei schauen und du nicht meinen Hinweisen folgen.
https://www.herber.de/bbs/user/153767.xlsm
Ich habe noch den Druckbereich angepasst.
AW: Combox Druckerauswal-zellbereich
26.06.2022 16:37:57
Kay
Ich folge deinen Tips so gut es geht und wen ich deins vergleich mit meins dann sind wir auf dem gleichen Stand, Abgesehen das du nicht sagtest das deins eine Ergänzung, eine Ergänzung zu meinem ist . Die Fehlermeldung besteht aber trotzdem ohne das ich irgendwas an deiner Version verändert habe
AW: Combox Druckerauswal-zellbereich
26.06.2022 17:08:01
Kay
zumindest hab ich jetzt deinen Ansatz verstanden, was mir bisher nicht ganz schlüssig war. du hast die Combobox und TextBox mit den Zellen verknüpft.
Ich bin immer von deiner VBA ausgegangen das du Die Exemplar menge Direkt in die Zelle Schreibst ohne die Textbox
Ich habe entsprechend die die Verknüpfung zu den Zellen gelegt wo das ganze aus der Combobox angezeigt werden sol. Leider wird in deiner VBA Version NOCH NICHT das (Datum;Faulty ) in der Combobox angezeigt wie bei meiner Version?
Anzeige
AW: Combox Druckerauswal-zellbereich
26.06.2022 17:35:32
ralf_b
Ich finde die Nutzung von Textboxen und Comboboxen in diesem Falle etwas zu viel des Guten. Reicht es nicht ein einfaches Zell-Dropdowm per Datenüberprüfung zu nutzen?
Die Datei funktioniert bei mir. Die Füllung des Dropdown -Control hatte ich auskommentiert, du siehst das doch, oder?
AW: Combox Druckerauswal-zellbereich
26.06.2022 18:12:30
Kay
die TextBox hab ich rausgeschmissen. Aber warum bei dir die Anzeige der die aus wall in der Combobox funktioniert und bei mir nicht ist mir ein Regel
AW: Combox Druckerauswal-zellbereich
26.06.2022 18:52:17
Kay
Ja das du es auskommentiert ahst sehe ich👍
AW: Combox Druckerauswal-zellbereich
26.06.2022 18:52:52
Kay
Ja das du es auskommentiert hast sehe ich👍
AW: Combox Druckerauswal-zellbereich
26.06.2022 17:16:38
Kay
Eine Frag bist du von dem Ansatz ausgegangen das ich die angaben aus den Zellen A34 und A36 in der TextBox angezeigt haben will, wenn ja haben gegenseitig missverstanden ?
Anzeige
nein owt
26.06.2022 17:37:03
ralf_b
AW: Combox Druckerauswal-zellbereich
25.06.2022 10:48:16
Wolfgang
Liebe(r) Fragesteller(in)
drei Fragen habe ich an Dich:
1. hast Du auch einen Vornamen?
2. Was willst Du in einer MessageBox befühlen?
3. Wozu Druckerauswahl aus einer Tabelle (die Du stets aktualisieren muß) überlasse das Microsoft.
Mach das so o.ä.

Sub Drucken()
Dim A As Integer
A = MsgBox("Drucken?", vbYesNoCancel Or vbQuestion, "MyPrintMsgBox")
Select Case A
Case vbYes
Worksheets("mySheet").PrintOut
Case vbNo
Exit Sub
Case vbAbort
Exit Sub
End Select
End Sub
Zur Druckerauswahl einschließlich Druck in PDF kommst Du, wenn Du im Vorschau-Dialog von Microsoft, links oben das Drucker-Symbol drückst.
Das ist für den Anwender ein sehr viel längerer Weg, als die Auswahl aus einem Arbeitsblatt, dafür ist dies zuverlässig.und gewiss vollständiger.
Netter Gruß
"PrintPreview_Wolfgang"
AW: Combox Druckerauswal-zellbereich
25.06.2022 11:16:44
Kay
hallo Wolfgang
ja ich habe einen Namen!
Ich möchte gerne die Zwei Zelle Inhalte in meiner Combox anzeigen lassen, so das ich bei Auswahl die jeweilige Zelle ausdrucken kann mit der angegebenen Anzahl dies ist eine Ergänzung zu meinem Bacod Drucker in meinem Dokument !
Ich müsste Sonst immer den Drucker Bereich einstellen und das möchte ich nicht
(ich dachte meine Erklärung wehre verständlich gewesen bei Eröffnung meiner Frage, sonst wüste ich nicht wie ich es noch erklären kann mit Beschreibung und Excel Datei )
AW: Combox Druckerauswal-zellbereich
25.06.2022 11:31:20
Herbert_Grom
Hallo Kay,
so wie du schreibst, möchtest du eine einzige Zelle ausdrucken, jedenfalls habe ich das so verstanden. Ist das korrekt?
Servus
AW: Combox Druckerauswal-zellbereich
25.06.2022 12:22:55
Kay
Nein ich möchte in der ComboBox1 zwei Zeilen auswellen können für den Label Drucker
"A34:E34"(Faulty)
"A36:E36"(Ackuelles Datum)
Sorry wen es nicht verständlich war.
AW: Combox Druckerauswal-zellbereich
25.06.2022 12:40:39
Herbert_Grom
Wo steht die Anzahl der zu druckenden Exemplare, in dem Feld "Exemplare:" oder "Stückzahl"?
Welcher Zellbereich soll gedruckt werden?
AW: Combox Druckerauswal-zellbereich
25.06.2022 12:56:34
Kay
bei Exemplare werden die Stückzahl angegeben zum ausdrucken=C13
und in der Combo Box wird das auszudruckende Zelle angezeigt
Range ("A34:E34")=faulty
Range ("A36:E36")=Das Aktuelle Datum
AW: Combox Druckerauswal-zellbereich
27.06.2022 23:39:56
Wolfgang
Combox Druckerauswal-zellbereich
Liebe(r) Fragesteller(in)
Ich habe für Dich eine ergonomisch viel schönere Lösung.
Mit einem UserForm und Event-Handlern, das ist Supreme-Programmierung,
da Du Deine Excel und VBA Kenntnisse mit kaum bei Deiner interessanten Frage eingeschätz hast,
solltest Du Dich nicht überfordert fühlen, wenn ich Dir hier eine Hard-Core-Lösung vorstelle,
Zunächst lass mich Dich psychisch aufbauen:
Man kann alles, wenn man nur will!
Was ist ein UserForm, na ja, darüber bist Du gestolpert,
in der Entwicklungs-Umgebung ganz links wird der Application(genannt Projekt)-Baum angezeigt da drin hast Du schon herumgeklickt um VBS-Code einzugeben, vielleicht auf der Microsoft-Root,
Weder da, noch auf den Arbeitsblättern hat Dein Code was zu suchen, der richtiger Ort ist gleich unterhalb den Arbeitsblättern im Ordner "Module" oberhalb dieses Ordner ist der Ordner "Formulare"
mit einem Element "UserForm1", wenn Du darauf links klickst, dann hast Du im Eigenschaften-Fenster ganz oben den Namen dieses UserForm zu ändern und das würde ich tun, gib dem Ding einen Sprechenden Bezeichner,
den wirst Du später in Deinem VBA-Code verwenden, im rechten Fenster, da wo Du früher Deinen Code eingegeben hast, siehst Du ein ganz kleines Windows-Fenster, am rechten Rand hängt ein Fenster mit lauter kleinen Symbolen,
das Zeug nennt sich Controlls (bei Microsoft), das ist aber ein unscharfer Begriff; denn Text- und Editierfelder und ComboBox gehören zu den Elementen, die auch "Widgets" genannt werden.
das Windows-Fenster mit den "Widgets" nennt sich "Masken-Editor", findest in vielen Programmieroberflächen, z.B. Visual-Basic oder -C, oder Borland C++, damit baut man ein Dialog-Fenster,
das geht so, Du klickst aus der Widget-Tafel ein Element an und klickst im Windows-Fensterlein die Position an der die linkeobere Ecke des Widgets sein soll, neu eingefügte Widgets haben einen
weißen Rahmen, daran kannst Du die Größe ändern, klickst Du mitten hinein, so ändert sich der Curso zum Kreuz, nun kannst Du die Position des Widgets ändern,
klickst Du auf eine leere Stelle im Fenster so hat das ganze Fenster einen weißen Rahmen und Du kannst die größe des Fensters ändern, links ist das Eigenschafts-Fenster,
da ist der wichtigsten Eintrag "Caption" das ist die Beschriftung des Widgets und der Titel des Fensters, wenn ich einige Widgets sauber in einer Reihe haben will,
trage ich die unterste Eigenschaft "Top" ein, sehr hilfreich sind die Eigenschaft "Höhe" und "Breite".
Und nun komme ich auf den Hard-Core-Teil der Lösung, befreie Dich von der Vorstellung ein Programm fängt bei einem ersten Statemen (Code-Zeile A) und endet bei einem letzten Statement
(Code-Zeile Z) und es durchläuf alle Programmzeilen dazwischen, dies tut nicht einmal das, womit Du Dir das hier durchliest, alle Windows-Programme sind objekt-orientiert geschrieben, das ist ein Geschenk der Programmiersprache C,
damit der Programmierer einen Überblick in seinem Code hat ist dieser aufgeteilt in Funktionsgruppen, Objekte genannt, so eine Gruppe (Window, Button, und unserer ComboBox),
so ein Objekt ist eine Kapsel in die Du nur 'reinkommst, wenn Du ihren Namen kennst und ihren innere Aufbau,
das kennst Du auch, ein "Workbook" ist in Excel ein Objekt des Excel-Application-Objekt, diese Hierarchie wird uns in der Folge Probleme bereiten,
man kann nur durch die Tür des übergeordneten Objekt in die Kapsel hinein, über den Zaun kann man nicht springen
Ein Objekt besteht per definitionem aus "Eigenschaften" (Properies) und "Methoden", das kennst Du auch, "Sub", "Funktion" sind so eine "methode"
Jetzt zu Windows, das ist in C und objektorientiert geschrieben, damit aber nicht genug, Windows und Office sind interaktiv, das wird realisiert mit einer "message-queue",
und einem "Event-Handler", an den die "message-queue" alle messages, die für das jeweilige Window (dazu zählt auch die "Widgets")
Ein Window, das keine "Event-Handler" hat ist blind und taub.
Du brauchst den Kopf der "Event-Handler" nicht selbst zu schreiben, doppel-klicke im "masken-editor" ins leere Fenster, dann geht ein VBA-Eingabefenster" auf,
in dem Du in einem DropDown links oben den Namen Deines UserForm, das Ereignis auf das Du reagieren willst kannst Du in einem DropDown rechts oben,
default ist Click", das brauchst Du nicht, lösche es. Du befindest Dich in einem Bereich, in dem der Anwender darauf wartet, daß Dein UserForm aufgeht
und "Event-Handler" verlangsamen Dein Programm. Beachte bitte meine Kommentare in den nachfolgenden Codes.
Das mußt Du mit meinem Code nicht machen, es sei denn, Du willst weitere "Widgets"
Verwende meine Codes, wie folgt:
Kopiere sie mit einem Text-Editor,
z.B. Edit oder Textpad in zwei Dateien und speichere diese als text, wie Du die Datei mit den "Even-Handler" nennst ist egal,
Die Datei mit dem Hauptprogramm, solltest Du so nennen, wie Dein Modul heißen soll.
Dann speicher sie mit der "Extention", also Dateityp "bas". Nun gehe in Deine Entwicklungsumgebung und links klicke in Deinem Projektbaum "Module" und
wähle aus dem lokalen Menu "Datei importieren" und wähle Dein Hauptprogramm aus,
falls es nötig ist, ändere in der letzten Zeile die "Show"-Anweisung auf den Namen Deiner UserForm
Nun rechts-klicke im Baum "Formulare" und im lokalen Menu "Einfügen"->"UserForm"
Nenne die Form beliebig, dazu links-klickst Du Deine neue UserForm, dann öffnete sich ein Eigenschaftenfenster da kannst Du ganz oben den Namen eintragen.
Nun rechts-klicke Dein UserForm, im lokalen Menu wähle aus "Code anzeigen", lösche alles weg, was nach VB aussieht, und kopiere stattdessen mein Code hinein.
Wenn Du jetzt links-klickst Dein Modul und in das Sub reinklickst und mit dem Pfeilsymbol in der Symbol-Menu-Line das makro laufen lässt,
müsste Dein UserForm aufgehen, sonst hast Du Fehler drin.
arbeite das UserForm ab. Denk dran, Deinen Drucker einzuschalten.

WSP = Worksheets.Add
WSP.Name = "Drucker"
WSP.Range(1, 1).Val = "Device"
WSP.Range(1, 2).Val = "Driver"
WSP.Range(1, 3).Val = "Port"
'Jetzt müssen wir gaaanz weit herum durch das Microsoft Zeug, um an das aktives Application-Objekt
Set AB = ActiveWorkbook
AP = AB.Application 'Nur so kommen wir an das Application-Objekt
'Nun greifen wir die Druckerliste aus dem System ab
PrntLst = AP.Printers
'Wieviele sind installiert?
PrntCnt = PrntLst.Count
If PrntCnt > 0 Then
i = 2 'Zeilenzahl in WorkSheet Drucker
For Each Prnt In PrntLst
With PrntLst
WSP.Range(i, 1).Value = .DeviceName
WSP.Range(i, 2).Value = .DriverName
WSP.Range(i, 3).Value = .Port
End With
i = i + 1
Next
End If
'Nun können wir das UserForm anzeigen, um dieses Arbeitsblatt auazudrucken
UserForm_Print.Show
End Sub
Dim SlctFrom As Integer
Dim SlctTo As Integer
Dim SlctCpy As Integ
Dim SlctPrntr As String
Dim SlctPrvw As Boolean
Dim MaxRows As Integer
Dim Ereignis As Integer
Dim resText As String
Private Sub ActivateButtonPrint
If Ereignis  = 5 Then
CommandButtonPrint.Enabled = True
End If
End Sub
Private Sub CB_Drucker_Change()
SlctPrntr = ListIndex.Text
Ereignis = Ereignis + 1
ActivateButton
End Sub
Private Sub CB_From_Change()
SlctFrom = ListIndex
IF SlctFrom = 21 Then
SlctFrom = MaxRows
End IF
End Sub
Private Sub CB_To_Change()
SlctTo = ListIndex
IF SlctTo = 21 Then
SlctTo = MaxRows
End IF
End Sub
Private Sub CommandButtonPrint_Click()
Dim res As Integer
res = Worksheets("Drucker").PrintOut(SlctFrom, SlctTo, SlctCpy, SlctPrvw, SlctPrntr)
Select Case res
Case -1
resText = "Keine Nachrich"
Case 0
resText = "Kein Fehler aufgetreten"
Case 1
resText = "1"
Case 2
resText = "2"
End Select
End Sub
Private Sub UserForm_Print_Initialize()
Dim ArAnz(5) As Integer
Dim ArPrv(2) As String
Dim ArFrom(21) As Integer
Dim UsrFrm As Object
Dim PrntCnt As Integer
Dim PrntLst As Object
Dim Prnt As Object
Dim AP As Object
Dim AB As Workbook
Dim i As Integer
Dim WSP As Worksheet
Dim UsrFrm As Object
Dim CBPrntr As Object
Set UsrFrm = UserForm_Print
ArAnz = Array(1, 2, 3, 4, 5)
ArPrv = Array("Ja", "Nein")
ArFrom = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1048576)
'Füllen CB_Printer
'aus System
UsrFrm = UserForm_Print
CBPrntr = UsrFrm.CB_Drucker
'Jetzt müssen wir gaaanz weit herum durch das Microsoft Zeug, um an das aktives Application-Objekt
Set AB = ActiveWorkbook
AP = AB.Application 'Nur so kommen wir an das Application-Objekt
'Nun greifen wir die Druckerliste aus dem System ab
PrntLst = AP.Printers
'Wieviele sind installiert?
PrntCnt = PrntLst.Count
If PrntCnt > 0 The
For Each Prnt In PrntLst
With PrntLst
CB_Drucker.AddItem .DeviceName
End With
Next
End If
'Setze die ComboBox auf Listenanfang
CB_Drucker.ListIndex = 0
With UsrFrm
.CB_Anz.List = ArAnz
.CB_Preview.List = ArPrv
.CB_From.List = ArFrom
.CB_To = ArFrom
End With
MaxRows = 1048576
Ereignis = 0
CommandButtonPrint.Enabled = False
End Sub
Ich deaktiviere den "Drucken"-Knopf in der Initialisierung und prüfe nach jeder "Widget"-Änderung
in der Sub "ActivateButtonPrint" ob die UserForm vollständig ausgefüllt ist, dann aktiviere ich den Button
Nette Grüße
(UserForm-)Wolfgang
AW: Combox Druckerauswal-zellbereich
28.06.2022 00:53:51
Kay
Po so viel Tex und Informativer Inhalt zu so Später Stunde (00:41) da muss ich vor Dankbarkeit Schlucken !!! Ich werde dein ganzen Text Hier Kopieren und es mir Später in ruhe zu gemühte Ziehen
Ich Werde Schritt für Schtit das ganze durchgehen da es ganz schön viel auf einmal ist.
Ich danke die Du hast mehrgemacht als du hättest machen müssen in deiner Freizeit
Danke! Danke! Danke!
AW: Combox Druckerauswal-zellbereich
28.06.2022 01:07:53
Oberschlumpf
...und trotzdem enthält Wolfgangs Code mindestens 1 Fehler.
Sein erster Codeblock endet zwar irgdwann mit END SUB - aber der Beginn PRIVATE SUB oder einfach nur SUB fehlt.
Und nur Wolfgang weiß, ob...
WSP = Worksheets.Add
...wirklich die erste Codezeile in seinem ersten Codeblock ist.
AW: Combox Druckerauswal-zellbereich
28.06.2022 00:59:26
Kay
Po so viel Tex und Informativer Inhalt zu so Später Stunde (00:41) da muss ich vor Dankbarkeit Schlucken !!! Ich werde dein ganzen Text Hier Kopieren und es mir Später in ruhe zu gemühte Ziehen
Ich Werde Schritt für Schtit das ganze durchgehen da es ganz schön viel auf einmal ist.
Ich danke die Du hast mehr gemacht als du hättest machen müssen in deiner Freizeit
Danke! Danke! Danke!
(schwierig wird es für mich deinen Zell angaben zu folgen da ich mit angaben wie zum Beispiel A2 besser zurecht komme)
AW: Combox Druckerauswal-zellbereich
28.06.2022 08:57:51
Kay
Hallo Wolfgang Danke für deine ausführliche Beschreibung: Aber Hier muss ich mir leider Wissens technisch eigestehen das ich im Moment hier nicht mehr mitkomme. Es ist mir unangenehme zu fragen aber würdest du deine Ausführung in meine Datei Sezen
Das ist momentan der Stand bei mir was ich VBA Technisch zusammen bekommen habe:

Sub CB_Fuellen()
With Worksheets("Tabelle1").ComboBox1
.Clear
.AddItem "Faulty"
.AddItem Format$(Date, "dd/mm/yyyy")
Anzahl = Range("C19").Value                                          'Anzahl der Druckeraufträge
ActiveWindow.SelectedSheets.PrintOut Copies:=Anzahl, Collate:=True
End With
End Sub
Private Sub ComboBox1_Change()
Worksheets("Tabelle1").Range("W4").Value = ComboBox1.Value
End Sub
Sub Druckbereich()
With ActiveSheet.PageSetup
.PrintArea = "W4:W9"
End With
End Sub

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige