Hallo zusammen,
Ich möchte einfach ein einfachen „druckenmakro“ haben, indem abgefragt wird, welche seiten gedruckt werden sollen und ich einen Druckbereich auswählen kann. Folgendes habe ich im Internet gefunden:
Sub Drucken_1_1()
Dim Kopien As Variant
If MsgBox(„Drucken?“, vbYesNo, „Drucken“) = vbYes Then
Do
Kopien = InputBox(„Anzahl Kopien“, „Drucken“, 1)
If StrPtr(Kopien) = 0 Then Exit Sub
If IsNumeric(Kopien) Then Exit Do
MsgBox „Bitte eine Zahl eingeben!“, vbExclamation, „Hinweis“
Loop
ActiveSheet.PrintOut From:=1, To:=1, Copies:=CLng(Kopien)
End If
End Sub
Genau so was brauche ich aber bei der Abfrage, welche Seite soll gedruckt werden, möchte ich eingeben können z.B: 1-32
In dem obigen makro kann ich nur eine einzige Zahl eingeben, also irgendeine Zahl unter 10. Ich weiss nur nicht wie das Makro dementsprechend geändert werden muss, damit man z.b. sagen kann, druck seiten 1 bis 4. Und in diesem Makro kann ich auch keinen Druckbereich wählen.
Das von Dir gepostete Makro zeigt eine InputBox an, in die der Anwender die Anzahl der zu druckenden Kopien von nur einer Seite eingeben kann. Das unterscheidet sich aber von der Beschreibung Deines Vorhabens, die expliziten Seitenzahlen (Dein Beispiel: 1-32) eingeben zu können.
Der folgende Code ermöglicht das Eingeben der Seitenzahlen „von“ und „bis“:
Public Sub PrintDialog()
Dim Cancel As Boolean
Dim UserResult As VbMsgBoxResult
Dim UserInput As String
Dim FromPage As Long
Dim ToPage As Long
On Error GoTo ErrHandler
UserResult = MsgBox("Drucken?", vbYesNo)
Select Case UserResult
Case vbNo
Exit Sub
End Select
ShowFromPage:
UserInput = InputBox("Drucken von Seite...")
If UserInput = vbNullString Then
Exit Sub
End If
FromPage = CLng(UserInput)
If FromPage = 0 Then GoTo ShowFromPage
ShowToPage:
UserInput = InputBox("Drucken bis Seite...")
If UserInput = vbNullString Then
Exit Sub
End If
ToPage = CLng(UserInput)
If ToPage = 0 Then GoTo ShowToPage
ExitSub:
If Cancel = True Then Exit Sub
ActiveSheet.PrintOut From:=FromPage, To:=ToPage, Copies:=1
Exit Sub
ErrHandler:
Cancel = True
Resume ExitSub
End Sub
Wie Du das mit dem Druckbereich meinst, habe ich nicht ganz verstanden.
Carsten, vielen vielen Dank. Hat alles PERFEKT geklappt mit deinem Makro. Habe Tagelang nach der Lösung gesucht. Genau wie ich das brauchte, vielen Dank…