Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Schleife! Zeile markieren, Drucken, nächste Zeile

Betrifft: Schleife! Zeile markieren, Drucken, nächste Zeile von: Knoof
Geschrieben am: 12.08.2014 13:44:49

Hallo Forum,

Ich habe noch nicht viel mit Schleifen gearbeitet aber in diesem Fall wäre eine Sschleife für mich sehr sehr nützlich.

Meine UserForm druckt durch betätigen des "Drucken" Buttons ein Word Dokument mit den Inhalten der Zellen in der markierten Zelle aus.
In eine Zeile stehen ID, Name, Vorname, Adresse etc. diese daten werden durch den Druck Button automatisch in ein Word dokument importiert und direkt ausgedruckt, da sich in meiner Excelliste ziemlich viele Zeilen mit Datensätzen befinden, müsste ich eine Zeile markieren, Drucken drücken, nächste Zeile markieren, drucken drücken usw.
Da dies ziemlich aufwändig werden kann hab ich mir überlegt dort mit einer Schleife zu arbeiten welche mir die möglichkeit gibt, alle Datensätze auszudrucken.

Also soll die schleife bei Zeile 1 anfangen, den Druckvorgang wie gewohnt durchführen, und sobald dieser durch ist, in die nächste Zeile springen und dort erneut ausführen, solange bis die letzte Zeile erreicht ist.

Das füllen der Word datei und das Drucken funktioniert schon einwandfrei, es muss nurnoch diese Schleife dort eingetüftelt werden.

Kann mir da wer helfen?

Gruß,
Knoof

  

Betrifft: AW: Schleife! Zeile markieren, Drucken, nächste Zeile von: David
Geschrieben am: 12.08.2014 14:21:40

Den Button kannst du folgendermaßen aufrufen. (Angenommen der Name des Buttons ist _ CommandButton1)

Call CommandButton1_Click
Wenn du bei der Schleife selbst hilfe brauchst, dann musst du denke ich etwas konkreter werden. Es gibt ja verschiedene Schleifen (for, while, etc. )
eine kleine orientierung vielleicht:
Sub click_10_times()
For i = 1 To 10
    ActiveSheet.Rows(i).Select
    Call CommandButton1_Click
Next i
End Sub



  

Betrifft: AW: Schleife! Zeile markieren, Drucken, nächste Zeile von: Knoof
Geschrieben am: 12.08.2014 14:42:53

Danke für die Antwort.
ife in mein Button einzubinden, dann reagiert der Button garnicht mehr.

Das ziel ist den "Druck" button (cmddruck) einmal zu klicken, und alle gefüllten Zeilen in ActiveSheet abzuarbeiten.
Also zB 10 zeilen sind gefüllt, Druck klicken, 10 Word dokumente werden ausgedruckt.

Nur muss ich nun wissen wie ich meinen Druckvorgang der momentan für einzelne Zeilen super funktioniert in eine Schleife packe.

zB.:

Private Sub cmddruck_click()
For 1 To [Anzahl der gefüllten Zeilen]
ActiveSheet.Rows(i).Select

[Code für den Druckvorgang]

Next i

End Sub
Dies würde ja bewirken, das Zeile 1 markiert wird, er dannd en Druckvorgang durchführt und in die nächste Zeile springt und die nächste Zeile druckt.
So wäre es PERFEKT!
:D
Gruß,
Knoof


  

Betrifft: AW: Schleife! Zeile markieren, Drucken, nächste Zeile von: David
Geschrieben am: 12.08.2014 14:50:09

habe ich dir doch geschrieben!

[Code für den Druckvorgang] = "Call CommandButton1_Click"

wenn dein Button anders heisst, musst du das entsprechend ändern. Sollte dein Button "DiesIstMeinButton" heissen, dann ist dein code

Call DiesIstMeinButton_Click

du kannst auch einfach mal denEntwurfsmodus aktivieren und dann doppelclick auf den Button. dann solltest du direkt in der Routine sein, die du aufrufen musst.


  

Betrifft: AW: Schleife! Zeile markieren, Drucken, nächste Zeile von: Knoof
Geschrieben am: 12.08.2014 14:57:42

Aber wofür denn das Call wenn ich die schleife doch eh in die Sub vom Button rein schreibe, die soll doch ausgeführt werden wenn ich den Button Klicke, dann kann ich die doch direkt in den COde für den Button reinschreiben oder nicht.


  

Betrifft: AW: Schleife! Zeile markieren, Drucken, nächste Zeile von: David
Geschrieben am: 12.08.2014 15:37:51

Ich würde an deiner Stelle eine zweite Sub schreiben, die die Schleife enthält. in jedem Durchgang deiner Schleife wird dann deine ursprüngliche Sub einmal aufgerufen (der Befehl mit dem 'Call'). Somit musst du am wenigsten ändern und du behälst deine ursprüngliche Sub.

Aber du kannst die Schleife und den Code deiner Sub natürlich auch in eine einzige Sub stecken.


  

Betrifft: AW: Schleife! Zeile markieren, Drucken, nächste Zeile von: Knoof
Geschrieben am: 12.08.2014 15:46:03

Okay verstanden, Danke

Nun funktioniert es halbwegs, er macht zwar mehrere durchläuft, druckt aber allerding 3 mal den gleichen Datensatz aus ... Obwohl ich ja eigentlich nach jedem Druck einen Zeilenwechsel vorgeschrieben habe :/


  

Betrifft: AW: Schleife! Zeile markieren, Drucken, nächste Zeile von: Ewald
Geschrieben am: 12.08.2014 21:56:45

Hallo Knoof,

zeige mal den Code der unter deinem Druckbutton liegt.

Rows(i).Select und Call Commandbutton1_Click sind eigentlich überflüssig.

Gruß Ewald


 

Beiträge aus den Excel-Beispielen zum Thema "Schleife! Zeile markieren, Drucken, nächste Zeile"