Boite de dialogue pour nombre d'impression.
Résolu
Villette54
Messages postés
300
Date d'inscription
Statut
Membre
Dernière intervention
-
Villette54 Messages postés 300 Date d'inscription Statut Membre Dernière intervention -
Villette54 Messages postés 300 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai sur un classeur Excel, un bouton qui me permet d'imprimer une feuille cachée du classeur.
Chaque clique sur le bouton permet de lancer une impression.
J'aimerais cependant effectuer un petit changement, j'aimerais avoir une boite de dialogue afin de de demander le nombre d'impression souhaitée !
Voici mon code actuel :
Merci d'avance pour votre aide.
J'ai sur un classeur Excel, un bouton qui me permet d'imprimer une feuille cachée du classeur.
Chaque clique sur le bouton permet de lancer une impression.
J'aimerais cependant effectuer un petit changement, j'aimerais avoir une boite de dialogue afin de de demander le nombre d'impression souhaitée !
Voici mon code actuel :
Sub Button8_Click()
If MsgBox("Êtes-vous sûr de vouloir imprimer la feuille pour les opérateurs ?", vbQuestion + vbYesNo, "Confirmation") = vbYes Then
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Sheets("Impression").Visible = True
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("Impression").Visible = False
Sheets("Encodage").Range("A1").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Else: MsgBox "Impression annulé !"
End If
End Sub
Merci d'avance pour votre aide.
1 réponse
-
Bonjour,
Créé une textbox (nommée textbox1) et essaye ca :
Sub Button8_Click() If MsgBox("Êtes-vous sûr de vouloir imprimer la feuille pour les opérateurs ?", vbQuestion + vbYesNo, "Confirmation") = vbYes Then If TextBox1.Text = "" Then MsgBox "Entrer un nombre de copie" Else If IsNumeric(TextBox1.Value) = False Then MsgBox "Entrer une valeur numérique" Else Application.DisplayAlerts = False Application.ScreenUpdating = False Sheets("Impression").Visible = True ActiveWindow.SelectedSheets.PrintOut Copies:=TextBox1.Value, Collate:=True, _ IgnorePrintAreas:=False Sheets("Impression").Visible = False Sheets("Encodage").Range("A1").Select Application.DisplayAlerts = True Application.ScreenUpdating = True End If End If Else: MsgBox "Impression annulé !" End If
-
-
Bonjour,
ergor entend par là un formulaire utilisateur (appelé UserForm), dont tu peux faire le design avec la souris. Mais je pense qu'il y a plus simple avec un InputBox (qui est une sorte de UserForm prédéfini comme un MsgBox). Tu peux essayer :
Sub Button8_Click() c=InputBox("Combien de copies voulez-vous imprimer ?") While (c="" Or IsNumeric(c)=False) c=InputBox("Combien de copies voulez-vous imprimer ?") Wend Application.DisplayAlerts = False Application.ScreenUpdating = False Sheets("Impression").Visible = True ActiveWindow.SelectedSheets.PrintOut Copies:=c, Collate:=True, _ IgnorePrintAreas:=False Sheets("Impression").Visible = False Sheets("Encodage").Range("A1").Select Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
Cela ne nécessite que la copie de ce code en remplacement de l'existant.
Désolé si ça plante (je n'ai pas essayé), fais-moi savoir si ça fonctionne.
A+ -
Ok merci, effectivement ce n'est pas la première fois qu'on me parle d'un userform mais je n'ai jamais eu l'occasion d'en créer. (J'ai un message d'erreur à chaque fois que j'essaye : https://www.cjoint.com/c/CHBlt463YCc mais peu importe.
En revanche, pour ton code il fonctionne parfaitement mais j'aimerais savoir si une petite modification est possible ? Est-il possible d'avoir une msgbox si la valeur entrée n'est pas un nombre entier ou qu'elle est vide ?
Par contre je viens de me rendre compte que mon bouton n'imprimait pas la feuille "impression" mais la feuille où est situé le bouton, il va falloir que je regarde à ça aussi...
Merci. -
Dans ce cas fais ceci :
Sub Button8_Click()
c=InputBox("Combien de copies voulez-vous imprimer ?")
While (c="" Or IsNumeric(c)=False)
c=InputBox("Combien de copies voulez-vous imprimer ?")
Wend
If c = "" Then
MsgBox "Entrer un nombre de copie"
Else
If IsNumeric(c) = False Then
MsgBox "Entrer une valeur numérique"
Else
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Sheets("Impression").Visible = True
ActiveWindow.SelectedSheets.PrintOut Copies:=c, Collate:=True, _
IgnorePrintAreas:=False
Sheets("Impression").Visible = False
Sheets("Encodage").Range("A1").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
end if
End Sub -
Huum, il y'a toujours le même problème : si je rentre une valeur non numérique le userform se recharge mais la msgbox n'apparaît pas.
Autre petit soucis, si je clique sur annuler ou fermer le userform se recharge à l'infini (impossible de renoncer à l'impression une fois qu'on a cliqué sur le bouton)
Code actuel :Sub Button8_Click() c = InputBox("Combien de copies voulez-vous imprimer ?") While (c = "" Or IsNumeric(c) = False) c = InputBox("Combien de copies voulez-vous imprimer ?") Wend If c = "" Then MsgBox "Entrer un nombre de copie" Else If IsNumeric(c) = False Then MsgBox "Entrer une valeur numérique" Else Application.DisplayAlerts = False Application.ScreenUpdating = False Sheets("Impression").Visible = True Sheets("Impression").Select ActiveWindow.SelectedSheets.PrintOut Copies:=c, Collate:=True, _ IgnorePrintAreas:=False Sheets("Impression").Visible = False Sheets("Encodage").Range("A1").Select Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox "Impression lancée avec succés" End If End Sub
-