Noleleda
XLDnaute Nouveau
Bonjour,
J'ai utilisé un sub (trouvé sur ce forum) pour afficher les imprimantes dispos afin d'imprimer un userform en pdf.
Sub impressionForm(usf)
Dim x, tbl(), i, texte
x = 0
With CreateObject("WScript.Network")
Set imprimantes = .EnumPrinterConnections
For i = 0 To imprimantes.Count - 1
If InStr(LCase(imprimantes(i)), "pdf") > 0 Then ReDim Preserve tbl(0 To x): tbl(x) = imprimantes(i): texte = texte & x & "--" & imprimantes(i) & vbCrLf: x = x + 1
Next
i = InputBox("choissisez une imprimante " & vbCrLf & texte, "impression userform")
If i <> "" Then
.SetDefaultPrinter tbl(Val(i))
usf.printform
End If
End With
End Sub
Puis ceci pour le bouton d'impression:
Private Sub CommandButton1_Click()
impressionForm Me
End Sub
Cela fonctionne super bien, sauf que, mon userform contient un multipages de 3 pages. La macro n'imprime que la page active ou le bouton impression est situé. Il y a t'il une façon d'imprimer les 3 pages? J'ai aussi essayé avec un userform et un scrollbar mais idem, cela n'imprime qu'une partie de mon userform.
J'avais trouvé ceci pour l'impression des 3 pages, mais je ne trouve pas comment l'intégrer dans le code.
Private Sub CommandButton1_Click()
For i = 0 To 3
MultiPage1.Value = i
Do: DoEvents: Loop Until MultiPage1.Value = i
Me.PrintForm
Next
End Sub
Merci beaucoup!
J'ai utilisé un sub (trouvé sur ce forum) pour afficher les imprimantes dispos afin d'imprimer un userform en pdf.
Sub impressionForm(usf)
Dim x, tbl(), i, texte
x = 0
With CreateObject("WScript.Network")
Set imprimantes = .EnumPrinterConnections
For i = 0 To imprimantes.Count - 1
If InStr(LCase(imprimantes(i)), "pdf") > 0 Then ReDim Preserve tbl(0 To x): tbl(x) = imprimantes(i): texte = texte & x & "--" & imprimantes(i) & vbCrLf: x = x + 1
Next
i = InputBox("choissisez une imprimante " & vbCrLf & texte, "impression userform")
If i <> "" Then
.SetDefaultPrinter tbl(Val(i))
usf.printform
End If
End With
End Sub
Puis ceci pour le bouton d'impression:
Private Sub CommandButton1_Click()
impressionForm Me
End Sub
Cela fonctionne super bien, sauf que, mon userform contient un multipages de 3 pages. La macro n'imprime que la page active ou le bouton impression est situé. Il y a t'il une façon d'imprimer les 3 pages? J'ai aussi essayé avec un userform et un scrollbar mais idem, cela n'imprime qu'une partie de mon userform.
J'avais trouvé ceci pour l'impression des 3 pages, mais je ne trouve pas comment l'intégrer dans le code.
Private Sub CommandButton1_Click()
For i = 0 To 3
MultiPage1.Value = i
Do: DoEvents: Loop Until MultiPage1.Value = i
Me.PrintForm
Next
End Sub
Merci beaucoup!