Microsoft Excel

Herbers Excel/VBA-Archiv

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

Drucker ansteuern VBA (bei WORD)

Betrifft: Drucker ansteuern VBA (bei WORD) von: Wolfgang
Geschrieben am: 12.11.2012 05:34:24

Hallo,
ich weiß, dass es sich hier um Excel-Forum handelt, stelle dennoch eine Frage aus dem Bereich VBA (WORD), weil ich auch weiß, dass sich viele VBA-Experten hier im Forum bewegen. Ich würde gerne in WORD ein UF einbauen, mit dem ich steuern kann, dass die Seiten 1 und 2 einmal gedruckt werden und die Seite 3 in der Häufigkeit über eine Textbox gesteuert werden. Wäre soetwas denkbar?
Danke schon jetzt für die Rückmeldungen.
Gruß - Wolfgang

  

Betrifft: AW: Drucker ansteuern VBA (bei WORD) von: JoWE
Geschrieben am: 12.11.2012 09:23:32

Hallo Wolfgang,

so kann es gehen: Du baust eine Userform mit einem Label, einem SpinButton (Drehfeld) und zwei Schaltflächen (CommandButton1 und CommandButton2). Dazu dann diese Funktionen:

Private Sub UserForm_Initialize()
    Me.Label1.Caption = 1
End Sub

Private Sub SpinButton1_SpinDown()
    If Me.Label1.Caption > 0 Then
        Me.Label1.Caption = Me.Label1.Caption - 1
    End If
End Sub

Private Sub SpinButton1_SpinUp()
    Me.Label1.Caption = Me.Label1.Caption + 1
End Sub

Private Sub CommandButton1_Click()
    ActiveDocument.ActiveWindow.PrintOut _
    Range:=wdPrintFromTo, From:="3", To:="3", copies:=Me.Label1.Caption
End Sub

Private Sub CommandButton2_Click()
    Unload Me  'Userform schließen
End Sub

Gruß
Jochen


  

Betrifft: AW: Drucker ansteuern VBA (bei WORD) von: Wolfgang
Geschrieben am: 12.11.2012 11:43:16

Hallo Jochen,
herzlichen Dank für Deine schnelle Rückantwort und die Überlassung der Codes. Ich habe den UF soweit "gebaut" und die Codes übernommen. Das funktioniert auch im Grunde soweit super. Ein Problem, welches ich aber auch nicht bedacht hatte, taucht auf: der Drucker arbeitet mit beidseitigem Druck. Kann ich dem Drucker über Deinen Code irgendwie zunächst noch als Seite 2 eine Leerseite suggerieren bzw. wie könnte ich den Code anpassen, dass Seite 1 (mit Text) und Seite 2 leer (Rückseite)gedruckt werden und dann in der Folge die Kopien der Seite 3 anhand SpinButton-Einstellung gedruckt werden?
Danke schon jetzt wieder für Deine Rückmeldung.
Gruß - Wolfgang


  

Betrifft: AW: Drucker ansteuern VBA (bei WORD) von: JoWE
Geschrieben am: 12.11.2012 17:53:22

Hallo Wolfgang,

diese Codeänderung fügt zunächst temporär eine leere Seite 2 ein und druckt dann die Seite 1, 2 (die leere Seite) und dann die Seite 3 die ja eigentlich die Seite 2 ist. Danach wird die temporäre Seite wieder entfernt und die tatsächliche Seite 3 wird nach Maßgabe der gewünschten Anzahl lt. Userform gedruckt:

Private Sub CommandButton1_Click()
    'gehe zum ersten Zeichen der Seite 2
    Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="2"
    'füge temporär eine neue leere Seite ein
    Selection.InsertBreak Type:=wdPageBreak
    'jetzt drucken: Seite 1, die neue leere Seite 2 und die jetztige Seite 3
    ActiveDocument.ActiveWindow.PrintOut _
    Range:=wdPrintFromTo, From:="1", To:="3"
    'jtzt die temporär eingefügte Seite löschen und
    Selection.TypeBackspace
    'dfanach die Kopien Seite 3 nach Maßgabe der Userform drucken
    ActiveDocument.ActiveWindow.PrintOut _
    Range:=wdPrintFromTo, From:="4", To:="4", copies:=Me.Label1.Caption
    'schließlich den Cursor wieder an den Dokumentenanfang setzen
    Selection.HomeKey Unit:=wdStory
End Sub

Ich meine so könnte es klappen.
Gruß
Jochen


  

Betrifft: AW: Drucker ansteuern VBA (bei WORD) von: JoWE
Geschrieben am: 12.11.2012 20:52:29

ups, kleiner Fehler!
statt
ActiveDocument.ActiveWindow.PrintOut _
Range:=wdPrintFromTo, From:="4", To:="4", copies:=Me.Label1.Caption
muss es heißen
ActiveDocument.ActiveWindow.PrintOut _
Range:=wdPrintFromTo, From:="3", To:="3", copies:=Me.Label1.Caption
Jochen


  

Betrifft: Danke Jochen ! - eine Frage noch von: Wolfgang
Geschrieben am: 13.11.2012 19:33:15

Hallo Jochen,
zunächst recht herzlichen Dank für Deine erneuten Rückmeldungen und sorry, dass ich mich erst jetzt zurückmelden kann. Ich habe Deine Ergänzungen übernommen und eingepflegt. Beide Möglichkeiten laufen einwandfrei und mir ist auch klar geworden, dass ich sie in zwei verschiedenen Dokumenten gut einsetzen kann. Hab nochmals recht herzlichen Dank dafür. Eine Frage bewegt mich dabei noch, so dass ich frage, ob Du da evtl. auch einen Lösungsansatz hast: Auf dem aktiven Dokument befindet sich eine Schaltfläche (CommandButton1), um den UF zu starten. Wie kann der Ausdruck der Schaltläche vermieden werden? Ich habe mal in verschiedenen Foren nachgeschaut, aber keinen Ansatz hierzu finden können. Hättest Du da evtl. noch eine Idee? - Danke schon jetzt wieder für Deine Rückmeldung.
Herzliche Grüße - Wolfgang


 

Beiträge aus den Excel-Beispielen zum Thema "Drucker ansteuern VBA (bei WORD)"