Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

UserForm d'impression.

9 réponses
Avatar
Jipé
Bonjour le Forum,

Sur la même feuille de calculs, j'ai 1 facture, 1 traite et 1 BL.

Facture = plage A8:H65
Traite = plage A66:H130
BL = plage A131:H190

Comment imprimer à partir d'une UserForm :la facture, (ou, et) la traite,
(ou, et) le BL, (ou, et) la facture et la traite (ou, et) la facture et la
traite et le BL ?

Merci d'avance pour votre aide.
Jipé

9 réponses

Avatar
papou
Bonjour
Utiliser des case à cocher
Récupérer les valeurs de chaque case dans une autre routine qui redéfinira
ensuite les zones d'impression et lancera les impression à chaque fois
Cordialement
Pascal

"Jipé" a écrit dans le message de
news:
Bonjour le Forum,

Sur la même feuille de calculs, j'ai 1 facture, 1 traite et 1 BL.

Facture = plage A8:H65
Traite = plage A66:H130
BL = plage A131:H190

Comment imprimer à partir d'une UserForm :la facture, (ou, et) la traite,
(ou, et) le BL, (ou, et) la facture et la traite (ou, et) la facture et la
traite et le BL ?

Merci d'avance pour votre aide.
Jipé




Avatar
Pascal Engelmajer
Salut
dans le module de code de ThisWorkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Imprime").Delete
On Error Resume Next
End Sub

Private Sub Workbook_Open()
Dim bar As CommandBar
Dim ctrl As CommandBarButton
Dim txtCherche As CommandBarControl
Dim btnCherche As CommandBarButton
On Error Resume Next
Application.CommandBars("Imprime").Delete
On Error GoTo 0
Set bar = Application.CommandBars.Add(Name:="Imprime")
bar.Visible = True
bar.Position = msoBarTop
With bar.Controls
Set ctrl = .Add(Type:=msoControlButton, ID _
:)50, Before:=1)
With ctrl
.FaceId = 2521
.Style = msoButtonIconAndCaption
.Caption = "&Facture"
.TooltipText = "Sélectionne la facture pour l'impression"
.OnAction = "selFacture"
End With
Set ctrl = .Add(Type:=msoControlButton, ID _
:)50, Before:=1)
With ctrl
.FaceId = 2521
.Style = msoButtonIconAndCaption
.Caption = "&Traites"
.TooltipText = "Sélectionne la traite pour l'impression"
.OnAction = "selTraite"
End With
Set ctrl = .Add(Type:=msoControlButton, ID _
:)50, Before:=1)
With ctrl
.FaceId = 2521
.Style = msoButtonIconAndCaption
.Caption = "&Bon de Livraison"
.TooltipText = "Sélectionne le bon de livraison pour
l'impression"
.OnAction = "selBL"
End With
End With
End Sub

Dans un module standard
Sub selFacture()
Worksheets(1).PageSetup.PrintArea = "A8:H65"
End Sub
Sub selTraite()
ActiveSheet.PageSetup.PrintArea = "A66:H130"
End Sub
Sub selBL()
ActiveSheet.PageSetup.PrintArea = "A131:H190"
End Sub

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:

Bonjour le Forum,

Sur la même feuille de calculs, j'ai 1 facture, 1 traite et 1 BL.

Facture = plage A8:H65
Traite = plage A66:H130
BL = plage A131:H190

Comment imprimer à partir d'une UserForm :la facture, (ou, et) la traite,
(ou, et) le BL, (ou, et) la facture et la traite (ou, et) la facture et la
traite et le BL ?

Merci d'avance pour votre aide.
Jipé




Avatar
Jipé
Re à tous,

Pascal, merci pour ta "barre d'impression". Lorsque je clique sur un des 3
boutons, il ne se passe rien.
Le seul changement par rapport à ton code est:
Worksheets("Facture").PageSetup.PrintArea = "A8:H65"
pour
Worksheets(1).PageSetup.PrintArea = "A8:H65"
////////////////////////////////////////////////////////////

Papou, pour te suivre, je vois très bien 5 CheckBox (CheckBoxFacture,
CheckBoxTraite, CheckBoxBL etc...........)
et 5 TextBox.
Je coche par exemple CheckBoxFacture et CheckBoxTraite ensuite, je saisie
par exemple "3 dans la TextBoxFacture" et
"2 dans la TextBoxTraite" puis je clique sur le bouton "Imprimer", pour
avoir 3 factures et 2 traites.
J'ai essayé de modifier un code existant pour l'adapter à mon cas. Ca me
dépasse.

Voici le code modifié:

Private Sub CommandButton3_Click()

'Validation nombre de copies à imprimer
'Doit se situer entre 1 et 10, Tu adaptes...
Dim Nb As Integer

Dim Chk As MSForms.CheckBox
Dim Sh As Worksheet
Set Sh = Worksheets("Facture")

If IsNumeric(Me.TextBox1) Then
If Val(Me.TextBox1) > 0 And Val(Me.TextBox1) < 16 Then
Nb = Val(Me.TextBox1)
Me.TextBox1 = Nb
Else
MsgBox "Définir le nombre de copies..."
Exit Sub

End If
Else
MsgBox "Définir le nombre de copies..."
Exit Sub
End If

For Each c In USF_Impression.Controls
If TypeName(c) = "CheckBox" Then
If c.Value = -1 Then
Select Case c.Name
Case "CheckBox1" '*************************************
If MsgBox("Vous allez imprimer " & Nb & "copie(s) de la
Facture." _
& vbCrLf & vbCrLf & _
"Désirez-vous continuer ?", vbYesNo, "Attention") vbYes Then

With Sh
.PageSetup.PrintArea = Range("A8:H65").Address
.PrintOut copies:=Nb '*******
.PageSetup.PrintArea = ""
End With

Else
MsgBox "opération annulée"
End If
'///////////////////////////////////////////////////////////////////////////
///////////

If IsNumeric(Me.TextBox2) Then
If Val(Me.TextBox2) > 0 And Val(Me.TextBox2) < 16 Then
Nb = Val(Me.TextBox2)
Me.TextBox2 = Nb
Else
MsgBox "Définir le nombre de copies..."
Exit Sub

End If
Else
MsgBox "Définir le nombre de copies..."
Exit Sub
End If

Case "CheckBox2" '*************************************
If MsgBox("Vous allez imprimer " & Nb & " copie(s) de la
Traite." & _
vbCrLf & vbCrLf & _
"Désirez-vous continuer ?", vbYesNo, "Attention") vbYes Then

With Sh
.PageSetup.PrintArea = Range("A66:H130").Address
.PrintOut copies:=Nb '*******
.PageSetup.PrintArea = ""
End With

Else
MsgBox "opération annulée"
End If
'///////////////////////////////////////////////////////////////////////////
////////

If IsNumeric(Me.TextBox3) Then
If Val(Me.TextBox3) > 0 And Val(Me.TextBox3) < 16 Then
Nb = Val(Me.TextBox3)
Me.TextBox3 = Nb
Else
MsgBox "Définir le nombre de copies..."
Exit Sub

End If
Else
MsgBox "Définir le nombre de copies..."
Exit Sub
End If

Case "CheckBox3" '*************************************
If MsgBox("Vous allez imprimer " & Nb & " copie(s) du
BL." & _
vbCrLf & vbCrLf & _
"Désirez-vous continuer ?", vbYesNo, "Attention") vbYes Then

With Sh
.PageSetup.PrintArea = Range("A131:H190").Address
.PrintOut copies:=Nb '*******
.PageSetup.PrintArea = ""
End With

Else
MsgBox "opération annulée"
End If

'///////////////////////////////////////////////////////////////////////////
////////

If IsNumeric(Me.TextBox4) Then
If Val(Me.TextBox4) > 0 And Val(Me.TextBox4) < 16 Then
Nb = Val(Me.TextBox4)
Me.TextBox4 = Nb
Else
MsgBox "Définir le nombre de copies..."
Exit Sub

End If
Else
MsgBox "Définir le nombre de copies..."
Exit Sub
End If

Case "CheckBox4" '*************************************
If MsgBox("Vous allez imprimer " & Nb & " copie(s) de la
Facture + Traite." _
& vbCrLf & vbCrLf & _
"Désirez-vous continuer ?", vbYesNo, "Attention") vbYes Then

With Sh
.PageSetup.PrintArea = Range("A8:H130").Address
.PrintOut copies:=Nb '*******
.PageSetup.PrintArea = ""
End With

Else
MsgBox "opération annulée"
End If
'///////////////////////////////////////////////////////////////////////////
//////////////////

If IsNumeric(Me.TextBox5) Then
If Val(Me.TextBox5) > 0 And Val(Me.TextBox5) < 16 Then
Nb = Val(Me.TextBox5)
Me.TextBox5 = Nb
Else
MsgBox "Définir le nombre de copies..."
Exit Sub

End If
Else
MsgBox "Définir le nombre de copies..."
Exit Sub
End If

Case "CheckBox5" '*************************************
If MsgBox("Vous allez imprimer " & Nb & " copie(s) de la
Facture + Traite + BL." _
& vbCrLf & vbCrLf & _
"Désirez-vous continuer ?", vbYesNo, "Attention") vbYes Then

With Sh
.PageSetup.PrintArea = Range("A8:H190").Address
.PrintOut copies:=Nb '*******
.PageSetup.PrintArea = ""
End With

Else
MsgBox "opération annulée"
End If

End Select
End If
End If
Next
End Sub

Merci à vous.
Jipé


"Pascal Engelmajer" a écrit dans le
message de news:
Salut
dans le module de code de ThisWorkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Imprime").Delete
On Error Resume Next
End Sub

Private Sub Workbook_Open()
Dim bar As CommandBar
Dim ctrl As CommandBarButton
Dim txtCherche As CommandBarControl
Dim btnCherche As CommandBarButton
On Error Resume Next
Application.CommandBars("Imprime").Delete
On Error GoTo 0
Set bar = Application.CommandBars.Add(Name:="Imprime")
bar.Visible = True
bar.Position = msoBarTop
With bar.Controls
Set ctrl = .Add(Type:=msoControlButton, ID _
:)50, Before:=1)
With ctrl
.FaceId = 2521
.Style = msoButtonIconAndCaption
.Caption = "&Facture"
.TooltipText = "Sélectionne la facture pour l'impression"
.OnAction = "selFacture"
End With
Set ctrl = .Add(Type:=msoControlButton, ID _
:)50, Before:=1)
With ctrl
.FaceId = 2521
.Style = msoButtonIconAndCaption
.Caption = "&Traites"
.TooltipText = "Sélectionne la traite pour l'impression"
.OnAction = "selTraite"
End With
Set ctrl = .Add(Type:=msoControlButton, ID _
:)50, Before:=1)
With ctrl
.FaceId = 2521
.Style = msoButtonIconAndCaption
.Caption = "&Bon de Livraison"
.TooltipText = "Sélectionne le bon de livraison pour
l'impression"
.OnAction = "selBL"
End With
End With
End Sub

Dans un module standard
Sub selFacture()
Worksheets(1).PageSetup.PrintArea = "A8:H65"
End Sub
Sub selTraite()
ActiveSheet.PageSetup.PrintArea = "A66:H130"
End Sub
Sub selBL()
ActiveSheet.PageSetup.PrintArea = "A131:H190"
End Sub

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:

Bonjour le Forum,

Sur la même feuille de calculs, j'ai 1 facture, 1 traite et 1 BL.

Facture = plage A8:H65
Traite = plage A66:H130
BL = plage A131:H190

Comment imprimer à partir d'une UserForm :la facture, (ou, et) la
traite,


(ou, et) le BL, (ou, et) la facture et la traite (ou, et) la facture et
la


traite et le BL ?

Merci d'avance pour votre aide.
Jipé








Avatar
Pascal Engelmajer
Salut,
il ne se passe rien.
Sur l'aperçu la zone d'impression n'est pas modifiée ?


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:


Avatar
Jipé
Bonsoir Pascal,

Si tu me parles de l'aperçu "Icone (aperçu avant impression)" ou de
fichier => imprimer => (aperçu dans les propriétés de l'imprimante), c'est
comme dab.

Pour reprendre:
Je suis dans la feuille "Facture".
Je clique sur le bouton "Facture" ou "Traite" ou "BL" de ta barre
d'impression.
A ce moment là, c'est comme si la feuille trembait légèrement, puis,
plus rien.

Si tout se passait bien, ça devrait faire quoi?
Jipé



"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
il ne se passe rien.
Sur l'aperçu la zone d'impression n'est pas modifiée ?


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:






Avatar
Pascal Engelmajer
Salut,
rien d'apparent mais la zone d'impression doit être redéfinie comme
manuellement avec fichier/zone d'impression/définir
avec aperçu il doit montrer la facture, le bl ou la traite..
j'ai fait un test sur mon poste et c'est bon
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:

Bonsoir Pascal,

Si tu me parles de l'aperçu "Icone (aperçu avant impression)" ou de
fichier => imprimer => (aperçu dans les propriétés de l'imprimante), c'est
comme dab.

Pour reprendre:
Je suis dans la feuille "Facture".
Je clique sur le bouton "Facture" ou "Traite" ou "BL" de ta barre
d'impression.
A ce moment là, c'est comme si la feuille trembait légèrement,
puis,

plus rien.

Si tout se passait bien, ça devrait faire quoi?
Jipé



"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
il ne se passe rien.
Sur l'aperçu la zone d'impression n'est pas modifiée ?


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:










Avatar
Jipé
Bonsoir le Forum,

Désolé Pascal, je viens seulement de percuter.
Je dois utiliser ta barre comme une "sélection de plage" avant de cliquer
sur l'icone imprimante.
Ca fonctionne.

Par contre, je ne peux définir le nombre de copies souhaitées.
Est-ce encore possible en gardant ce que tu as fais?

Jipé

"Pascal Engelmajer" a écrit dans le
message de news:%
Salut,
rien d'apparent mais la zone d'impression doit être redéfinie comme
manuellement avec fichier/zone d'impression/définir
avec aperçu il doit montrer la facture, le bl ou la traite..
j'ai fait un test sur mon poste et c'est bon
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:

Bonsoir Pascal,

Si tu me parles de l'aperçu "Icone (aperçu avant impression)" ou de
fichier => imprimer => (aperçu dans les propriétés de l'imprimante),
c'est


comme dab.

Pour reprendre:
Je suis dans la feuille "Facture".
Je clique sur le bouton "Facture" ou "Traite" ou "BL" de ta barre
d'impression.
A ce moment là, c'est comme si la feuille trembait légèrement,
puis,

plus rien.

Si tout se passait bien, ça devrait faire quoi?
Jipé



"Pascal Engelmajer" a écrit dans le
message de news:
Salut,
il ne se passe rien.
Sur l'aperçu la zone d'impression n'est pas modifiée ?


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:














Avatar
Pascal Engelmajer
Salut,
pour ça il faut exécuter l'impression en rajoutant :
ActiveWindow.Sheets("Facture").PrintOut Copies:=8 'pour 8 exemplaires

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:

Bonsoir le Forum,

Désolé Pascal, je viens seulement de percuter.
Je dois utiliser ta barre comme une "sélection de plage" avant de cliquer
sur l'icone imprimante.
Ca fonctionne.

Par contre, je ne peux définir le nombre de copies souhaitées.
Est-ce encore possible en gardant ce que tu as fais?

Jipé

"Pascal Engelmajer" a écrit dans le
message de news:%
Salut,
rien d'apparent mais la zone d'impression doit être redéfinie comme
manuellement avec fichier/zone d'impression/définir
avec aperçu il doit montrer la facture, le bl ou la traite..
j'ai fait un test sur mon poste et c'est bon
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:

Bonsoir Pascal,

Si tu me parles de l'aperçu "Icone (aperçu avant impression)" ou de
fichier => imprimer => (aperçu dans les propriétés de l'imprimante),
c'est


comme dab.

Pour reprendre:
Je suis dans la feuille "Facture".
Je clique sur le bouton "Facture" ou "Traite" ou "BL" de ta barre
d'impression.
A ce moment là, c'est comme si la feuille trembait légèrement,
puis,

plus rien.

Si tout se passait bien, ça devrait faire quoi?
Jipé



"Pascal Engelmajer" a écrit dans
le



message de news:
Salut,
il ne se passe rien.
Sur l'aperçu la zone d'impression n'est pas modifiée ?


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il
va."




Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de
news:






















Avatar
Jipé
Bonjour Pascal, le Forum,

J'ai essayé comme ci-dessous. Ca ne doit pas être çà.

Sub selFacture()
Worksheets("Facture").PageSetup.PrintArea = "A8:H65"
ActiveWindow.Sheets("Facture").PrintOut Copies:=8 'pour 8 exemplaires
End Sub

Si j'ai bien compris "ActiveWindow.Sheets("Facture").PrintOut Copies:=8
'pour 8 exemplaires",
j'oblige l'user à imprimer un certain nombre de copies.

Dans mon cas, le nombre de copies est aléatoire.
Merci encore.
Jipé

"Pascal Engelmajer" a écrit dans le
message de news:uog6%
Salut,
pour ça il faut exécuter l'impression en rajoutant :
ActiveWindow.Sheets("Facture").PrintOut Copies:=8 'pour 8 exemplaires

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:

Bonsoir le Forum,

Désolé Pascal, je viens seulement de percuter.
Je dois utiliser ta barre comme une "sélection de plage" avant de
cliquer


sur l'icone imprimante.
Ca fonctionne.

Par contre, je ne peux définir le nombre de copies souhaitées.
Est-ce encore possible en gardant ce que tu as fais?

Jipé

"Pascal Engelmajer" a écrit dans le
message de news:%
Salut,
rien d'apparent mais la zone d'impression doit être redéfinie comme
manuellement avec fichier/zone d'impression/définir
avec aperçu il doit montrer la facture, le bl ou la traite..
j'ai fait un test sur mon poste et c'est bon
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:

Bonsoir Pascal,

Si tu me parles de l'aperçu "Icone (aperçu avant impression)" ou de
fichier => imprimer => (aperçu dans les propriétés de l'imprimante),
c'est


comme dab.

Pour reprendre:
Je suis dans la feuille "Facture".
Je clique sur le bouton "Facture" ou "Traite" ou "BL" de ta
barre




d'impression.
A ce moment là, c'est comme si la feuille trembait
légèrement,




puis,
plus rien.

Si tout se passait bien, ça devrait faire quoi?
Jipé



"Pascal Engelmajer" a écrit dans
le



message de news:
Salut,
il ne se passe rien.
Sur l'aperçu la zone d'impression n'est pas modifiée ?


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il
va."




Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de
news: