Microsoft Excel

Herbers Excel/VBA-Archiv

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

Drucken

Betrifft: Drucken von: Klausi
Geschrieben am: 18.08.2008 15:28:30

Hallo Leute

Ich habe hier einen Code mit MsgBox die mich fragt ob ich drucken will. Das klappt auch alles aber ich hätte gerne eine änderung. Wenn ich ja drücke sollte eine UF aufgehen wo ich die anzahl der Druckblätter eingeben kann. Bitte um Hilfe.

Klausi

Sub Schaltfläche401_BeiKlick()

Dim frage

frage = MsgBox("Alles Drucken  !!!" & Chr(10) _
            & Chr(10) _
              & "Nr. 02, 06, 10, 14, 18, 22, 26, 30, 34" & Chr(10) _
              & "             06, 22" & Chr(10) _
            & Chr(10) _
              & " Wollen sie alle Pläne Drucken ???", vbInformation + vbYesNo)
              
If frage = 6 Then Call AllesDrucken
End Sub



Hier der DruckCode:

Sub AllesDrucken()
Range("AQ3:AQ13").Select
    
        
Dim rng As Range
Dim objsh As Worksheet

Set objsh = ThisWorkbook.Sheets("Tabelle1")

With objsh
     For Each rng In .Range("AQ3:AQ13")
                     .Range("AF1") = rng
                     .PrintOut
    Next
End With
Set objsh = Nothing
End Sub


  

Betrifft: AW: Drucken von: Ramses
Geschrieben am: 18.08.2008 23:20:00

Hallo

Probier mal

Sub Schaltfläche401_BeiKlick()
    Dim frage As Integer, intP As Long
    frage = MsgBox("Alles Drucken !!!" & Chr(10) _
    & Chr(10) _
    & "Nr. 02, 06, 10, 14, 18, 22, 26, 30, 34" & Chr(10) _
    & " 06, 22" & Chr(10) _
    & Chr(10) _
    & " Wollen sie alle Pläne Drucken ???", vbInformation + vbYesNo)
    If frage = vbYes Then
        intP = InputBox("Wieviele Kopien ?", "Ausdruck Kopien", 1)
        If StrPtr(intP) <> 0 Then
            Call AllesDrucken(intP)
        Else
            MsgBox "Kein Ausdruck weil keine Kopien angegeben wurden !", _
            vbInformation + vbOKOnly, "Abbruch"
        End If
    End If
End Sub


Sub AllesDrucken(pPages As Long)
    Dim rng As Range
    Dim objsh As Worksheet
    Set objsh = ThisWorkbook.Sheets("Tabelle1")
    With objsh
        For Each rng In .Range("AQ3:AQ13")
            .Range("AF1") = rng
            .PrintOut copies: pPages
        Next
    End With
    Set objsh = Nothing
End Sub


Gruss Rainer


  

Betrifft: AW: Drucken von: Klausi
Geschrieben am: 19.08.2008 16:47:29

Hallo Rainer
das ist eine gute idee aber ich bekomme einmal eine Fehlermeldung wenn ich auf abbrechen gehe und eine Fehlermeldund wenn ich den Druck bestätige. Hab dir mal eine Testdatei angehängt. Vieleicht hab ich ja auch einen Fehler gemacht.

Gruß Klausi

https://www.herber.de/bbs/user/54727.xls


  

Betrifft: AW: Drucken von: Ramses
Geschrieben am: 19.08.2008 21:09:26

Hallo

so geht es

Sub Schaltfläche1_BeiKlick()
    Dim frage As Integer, intP As Long
    frage = MsgBox("Alles Drucken !!!" & Chr(10) _
    & Chr(10) _
    & "Nr. 02, 06, 10, 14, 18, 22, 26, 30, 34" & Chr(10) _
    & " 06, 22" & Chr(10) _
    & Chr(10) _
    & " Wollen sie alle Pläne Drucken ???", vbInformation + vbYesNo)
    If frage = vbYes Then
        On Error Resume Next
        intP = InputBox("Wieviele Kopien ?", "Ausdruck Kopien", 1)
        On Error GoTo 0
        Debug.Print StrPtr(intP)
        If intP > 0 Then
            Call AllesDrucken(intP)
        Else
            MsgBox "Kein Ausdruck weil keine Kopien angegeben wurden !", _
            vbInformation + vbOKOnly, "Abbruch"
        End If
    End If
End Sub
Sub AllesDrucken(pPages As Long)
    Dim rng As Range
    Dim objsh As Worksheet
    Set objsh = ThisWorkbook.Sheets("Tabelle1")
    With objsh
        For Each rng In .Range("K1")
            .Range("J1") = rng
            .PrintOut copies:=pPages
        Next
    End With
    Set objsh = Nothing
End Sub



Gruss Rainer


  

Betrifft: AW: Drucken von: Klausi
Geschrieben am: 19.08.2008 21:57:44

Hi danke für eure hilfe
klappt super.

Gruß Klausi


  

Betrifft: AW: Drucken von: Daniel
Geschrieben am: 19.08.2008 21:23:29

Hi

im 2. Makro ist noch ein kleiner Tipfehler:
".PrintOut copies: pPages" muss heißen: ".PrintOut copies:=pPages"

das 1. Makro ist etwas komplexer, um hier eine Reibungsfreien Ablauf beim Abbrechen oder Fehleingabe (Alphabetische Zeichen) zu gewährleisten, müsste man es so umschreiben:

Sub Schaltfläche1_BeiKlick()
Dim frage As Integer, Eingabe As String
    frage = MsgBox("Alles Drucken !!!" & Chr(10) _
    & Chr(10) _
    & "Nr. 02, 06, 10, 14, 18, 22, 26, 30, 34" & Chr(10) _
    & " 06, 22" & Chr(10) _
    & Chr(10) _
    & " Wollen sie alle Pläne Drucken ???", vbInformation + vbYesNo)
    If frage = vbYes Then
        Eingabe = InputBox("Wieviele Kopien ?", "Ausdruck Kopien", 1)
        If IsNumeric(Eingabe) And Eingabe <> "0" Then
            Call AllesDrucken(CLng(Eingabe))
        Else
            MsgBox "Kein Ausdruck weil keine Kopien angegeben wurden !", _
            vbInformation + vbOKOnly, "Abbruch"
        End If
    End If
End Sub



Gruß, Daniel
ps: ich hab dein Makro jetzt nicht auf Funktion, sondern nur auf die Fehler geprüft.


 

Beiträge aus den Excel-Beispielen zum Thema "Drucken"