Bonjour le forum,
J'ai une question toute simple mais je n'ai pas trouvé mon bonheur dans la recherche alors j'espère que quelqu'un pourra m'aiguiller.
Je souhaiterais pouvoir imprimer plusieurs userforms (6 pour etre exact) avec un seul bouton.
Pour le moment je sais faire l'impression d'un userform (copie écran > collage dans une feuille > mise en page et impression) via VBA.
J'ai tenté des choses mais à priori ca ne fonctionne pas... Du coup j'ai du créé un bouton "IMPRIMER" sur chaque userform.
Le principe étant le suivante:
1- clique sur le bouton "IMPRIMER"
2- copie ecran du userfom principal
3- coller dans la feuille "Imprimer", mise en page et impression de la copie d'écran
4- suppression de la copie d'écran
5- ouverture du userform 2
6- copie ecran du userfom 2
7- coller dans la feuille "Imprimer", mise en page et impression de la copie d'écran 2
8- suppression de la copie d'écran 2
9- ouverture du userform 3
10- copie ecran du userfom 3
11- coller dans la feuille "Imprimer", mise en page et impression de la copie d'écran 3
12- suppression de la copie d'écran 3
Etc.
Si c'est pas possible c'est pas grave, c'était juste histoire d'alléger mon boulot (faire un seul clic au lieu de 6).
Le code pour imprimer un formulaire
Private Sub imprime_btn_Click()
'créé la copie d'écran
Dim img As Object
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
'cache tous les formulaire déjà ouverts pour éviter de bloquer lors de l'apercu
Me.Hide
Menu.Hide
'sélectionner la feuille ou coller la copie d'écran
Sheets("Imprimer").Select
Range("A1").Select
ActiveSheet.Paste
'Mise en page de la feuille
With Feuil21.PageSetup
.PrintArea = "A1:J49"
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.CenterHorizontally = True
.CenterVertically = True
End With
'Impression de la feuille
Sheets("Imprimer").PrintOut Copies:=1, Collate:=True
'RAZ de la feuille
For Each img In Worksheets("Imprimer").Shapes
img.Delete
Next
'Réaffichage du userform
Sheets("Menu").Select
visu_hab.Show
End Sub
J'ai une question toute simple mais je n'ai pas trouvé mon bonheur dans la recherche alors j'espère que quelqu'un pourra m'aiguiller.
Je souhaiterais pouvoir imprimer plusieurs userforms (6 pour etre exact) avec un seul bouton.
Pour le moment je sais faire l'impression d'un userform (copie écran > collage dans une feuille > mise en page et impression) via VBA.
J'ai tenté des choses mais à priori ca ne fonctionne pas... Du coup j'ai du créé un bouton "IMPRIMER" sur chaque userform.
Le principe étant le suivante:
1- clique sur le bouton "IMPRIMER"
2- copie ecran du userfom principal
3- coller dans la feuille "Imprimer", mise en page et impression de la copie d'écran
4- suppression de la copie d'écran
5- ouverture du userform 2
6- copie ecran du userfom 2
7- coller dans la feuille "Imprimer", mise en page et impression de la copie d'écran 2
8- suppression de la copie d'écran 2
9- ouverture du userform 3
10- copie ecran du userfom 3
11- coller dans la feuille "Imprimer", mise en page et impression de la copie d'écran 3
12- suppression de la copie d'écran 3
Etc.
Si c'est pas possible c'est pas grave, c'était juste histoire d'alléger mon boulot (faire un seul clic au lieu de 6).
Le code pour imprimer un formulaire
Private Sub imprime_btn_Click()
'créé la copie d'écran
Dim img As Object
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
'cache tous les formulaire déjà ouverts pour éviter de bloquer lors de l'apercu
Me.Hide
Menu.Hide
'sélectionner la feuille ou coller la copie d'écran
Sheets("Imprimer").Select
Range("A1").Select
ActiveSheet.Paste
'Mise en page de la feuille
With Feuil21.PageSetup
.PrintArea = "A1:J49"
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.CenterHorizontally = True
.CenterVertically = True
End With
'Impression de la feuille
Sheets("Imprimer").PrintOut Copies:=1, Collate:=True
'RAZ de la feuille
For Each img In Worksheets("Imprimer").Shapes
img.Delete
Next
'Réaffichage du userform
Sheets("Menu").Select
visu_hab.Show
End Sub