Bouton VBA pour imprimer une feuille

BLACKHAYES

XLDnaute Impliqué
bonjourle forum,

J'aimerais connaitre le code VBA pour creer un bouton VBA "imprimer" pour imprimer une feuille excel, ca jusque la je sais faire, par contre ce que je ne sais pas, c'est inclure une demande, qui, quand on clic sur le bouton "imprimer" une fenetre s'ouvre pour me demander le nombre de copie que je souhaite imprimer de cette feuille.

Merci d'avance
 

Fichiers joints

DoubleZero

XLDnaute Barbatruc
Re : Bouton VBA pour imprimer une feuille

Bonjour, BLACKHAYES, le Forum,

Peut-être ainsi :

Code:
Private Sub CommandButton1_Click()
Dim copies As Variant

copies = InputBox("NOMBRE DE COPIES ?", "Indiquer la quantité désirée...")
ActiveWindow.SelectedSheets.PrintOut copies:=copies

End Sub
A bientôt :)

Nota : la variable est modifiée...
 
Dernière édition:

BLACKHAYES

XLDnaute Impliqué
Re : Bouton VBA pour imprimer une feuille

Bonjour double zero,

merci pour ta reponse,

C'est exactement ce que je voulais, sauf que quand j'annule la demande un message de debogage apparait et celane fonctionne plus apres ???

ou est l'erreur, j'ai remplacé mon code par le votre, c'est tout

A bientt
 

DoubleZero

XLDnaute Barbatruc
Re : Bouton VBA pour imprimer une feuille

Re-bonjour,

Gestion des erreurs à tester :

Code:
Option Explicit
Private Sub CommandButton1_Click()
Dim copies As Variant
On Error GoTo fin
copies = InputBox("NOMBRE DE COPIES ?", "Indiquer la quantité désirée...")
ActiveWindow.SelectedSheets.PrintOut copies:=copies
fin:
End Sub
A bientôt :)
 

job75

XLDnaute Barbatruc
Re : Bouton VBA pour imprimer une feuille

Bonjour BLACKHAYES, petite ânesse :)

Une autre solution (mais le contrôle d'erreur va bien aussi) :

Code:
Private Sub CommandButton1_Click()
Dim copies
copies = Abs(Val(InputBox("NOMBRE DE COPIES ?", "Indiquer la quantité désirée...")))
If copies Then ActiveWindow.SelectedSheets.PrintOut Copies:=copies
End Sub
A+
 

BLACKHAYES

XLDnaute Impliqué
Re : Bouton VBA pour imprimer une feuille

RE-bonjour double zero,

ok, maintenant cela fonctionne tres bien.

Mais derniere petite question, y a t'il possibilitée de transferer ce code sur le bouton "imprimer 2" qui lui ouvre un "UserForm1" pour que je puisse retravailler le UserForme1, car la InputBox cela est figé.

merci, pour vos reponse precedente et votre travail

a bientot
 

Fichiers joints

Dernière édition:

BLACKHAYES

XLDnaute Impliqué
Re : Bouton VBA pour imprimer une feuille

Bonjour job75,

mercipour votre code, comme celui de "doubleZero" fonctionne je garde sous le coude le votre;

merci de m'avoir repondu et aidé.

a bientot
 

DoubleZero

XLDnaute Barbatruc
Re : Bouton VBA pour imprimer une feuille

Re-bonjour, bonjour, job75 :D,

... y a t'il possibilitée de transferer ce code sur le bouton "imprimer 2" qui lui ouvre un "UserForm1" pour que je puisse retravailler le UserForme1, car la InputBox cela est figé...
Ne maîtrisant pas l'userform, je ne sais si je pourrai aider :confused:.

Pourrait-on voir le fichier réel, dépourvu de donnée confidentielle ?

A bientôt :)
 

BLACKHAYES

XLDnaute Impliqué
Re : Bouton VBA pour imprimer une feuille

re-Bonjour DoubleZero,

Hélas non, le fichier est a mon travail, mais il n'a rien de special.

ce sont plusieurs colonnes pour renseigner , nom date N° facture, etc etc, au nombre de 11 colonnes sur la feuille

et donc mon code sert juste a imprimer en fin de moi la totalitée des lignes renseignées ainsi que dans cette feuille il y a un bouton VBA qui m'ouvre une feuille ou j'ai stocké des adresse de livraison de clients qui sont differentes de la facturation et quand j'ai plusieurs colis il me faut autant d'etiquette d'adresse que de colis.

voila pourquoi m'a demande de ce code.

bien cordialement a vous.

a bientot
 

BLACKHAYES

XLDnaute Impliqué
Re : Bouton VBA pour imprimer une feuille

Re Bonjour DoubleZero,

oups désolé je n' avais pas telechargé le nouveau fichier avec le "userForm1", mais maintenant c'est fait,

il suffit d'ouvrir le fichier et cliquez sur le bouton "imprimez 2" (le marron) pour faire apparaitre l'userform;

et F11 pour ouvrir VB editeur

Désolé,

donc siquelqu'un sait faire ce code ca m'aiderait beaucoup

merci d'avance,

a bientot
 

stefan373

XLDnaute Occasionnel
Re : Bouton VBA pour imprimer une feuille

Bonsoir BLACKHAYES, 00, job75 et le forum,

En me servant de vos codes, à tester. :)
Je me suis permis de renommer la variable copies, car le terme est déjà utilisé par excel. :p

A+ Stéfan
 

Fichiers joints

Dernière édition:

BLACKHAYES

XLDnaute Impliqué
Re : Bouton VBA pour imprimer une feuille

Bonsoir BLACKHAYES, 00, job75 et le forum,

En me servant de vos codes, à tester. :)
Je me suis permis de renommer la variable copies, car le terme est déjà utilisé par excel. :p

A+ Stéfan
BONJOUR STEFAN,

oui effectivement, le terme copie est deja utilisé,
mais je pense que tu parles du terme "copie" dans le code du bouton "Imprimer" (celui sans couleur de fond),

celui-ci en fait j'ai l'ais laissé pour exemple de code, mais sera supprimer si le bouton "Imprimer 2" fonctionne et c'est justement le cas "stefan" votre code fonctionne tres bien.

C'est exactement ce que je voulais, alors grand merci a vous pour votre travail.

a Bientot
 

BLACKHAYES

XLDnaute Impliqué
Re : Bouton VBA pour imprimer une feuille

Re Stefan373,

Comment fait on pour avoir la police en gras dans ma TextBox1;

Cordialement,

a bientot,
 

stefan373

XLDnaute Occasionnel
Re : Bouton VBA pour imprimer une feuille

Bonjour BLACKHAYES et le forum,

Et voilà. :)

Code:
Private Sub UserForm_Initialize()
TextBox1.Font.Bold = True
End Sub
A+ Stéfan
 

hokousai

XLDnaute Nouveau
Bonsoir le Forum,
Je souhaiterais utiliser le code

VB:
Private Sub CommandButton1_Click()
Dim copies
copies = Abs(Val(InputBox("NOMBRE DE COPIES ?", "Indiquer la quantité désirée...")))
If copies Then ActiveWindow.SelectedSheets.PrintOut Copies:=copies
End Sub
Comment faire pour lui intégrer les feuilles à imprimer
Exemple: imprimer la feuille 1 et 3
par avance Merci
 

job75

XLDnaute Barbatruc
Bonjour hokousai, le forum,

La macro imprime les "SelectedSheets" donc sélectionnez-les :
VB:
Private Sub CommandButton1_Click()
Dim copies
copies = Abs(Val(InputBox("NOMBRE DE COPIES ?", "Indiquer la quantité désirée...")))
Sheets(Array(1, 3)).Select
If copies Then ActiveWindow.SelectedSheets.PrintOut copies:=copies
End Sub
Les 2 feuilles doivent être visibles sinon utilisez :
VB:
Private Sub CommandButton1_Click()
Dim copies, Sh As Object, vis%
copies = Abs(Val(InputBox("NOMBRE DE COPIES ?", "Indiquer la quantité désirée...")))
If copies = 0 Then Exit Sub
For Each Sh In Sheets(Array(1, 3))
    vis = Sh.Visible
    Sh.Visible = xlSheetVisible
    Sh.PrintOut copies:=copies
    Sh.Visible = vis 'état initial
Next
End Sub
Bonne journée.
 

hokousai

XLDnaute Nouveau
Bonjour le forum,
@job75,
Je souhaiterai utiliser dans un UserForm de mon classeur, une partie du code ci-dessous :
VB:
Private Sub CommandButton1_Click()
Dim copies, Sh As Object, vis%
copies = Abs(Val(InputBox("NOMBRE DE COPIES ?", "Indiquer la quantité désirée...")))
If copies = 0 Then Exit Sub
For Each Sh In Sheets(Array(1, 3))
    vis = Sh.Visible
    Sh.Visible = xlSheetVisible
    Sh.PrintOut copies:=copies
    Sh.Visible = vis 'état initial
Next
End Sub
Qui me permettra d’Imprimer des feuilles masquées, Comme vous l’avez indiqué ici #17
Mais je ne sais pas où l’intégrer et surtout je ne sais pas le faire.
Pour cela, je sollicite votre aide.
Merci par avance
Ps : Voici les codes du UserForm :
VB:
Private Sub apercu_Click()
Dim i As Integer
UserForm1.Hide
With ListBox1
  For i = 0 To .ListCount - 1
    If .Selected(i) Then Sheets(.List(i)).PrintPreview
  Next
End With
UserForm1.Show
End Sub
Private Sub imprimer_Click()
Dim i As Integer
UserForm1.Hide
If Application.Dialogs(xlDialogPrinterSetup).Show = False Then
    Exit Sub
Else
    With ListBox1
        For i = 0 To .ListCount - 1
            If .Selected(i) Then Sheets(.List(i)).PrintOut Copies:=TextBox1.Value
        Next
    End With
    UserForm1.Show
End If
End Sub

Private Sub Label1_Click()
End Sub
Private Sub Label2_Click()
End Sub
Private Sub Label3_Click()
End Sub
Private Sub Label4_Click()
End Sub
Private Sub ListBox1_Click()
For i = 0 To .ListCount - 1
   If ListBox1.Selected(i) Then Sheets(.List(i)).Select
   Next
End With
End Sub
Private Sub ListBox2_Click()
End Sub
Private Sub UserForm_Initialize()
Dim S As Worksheet
sh = Array("Index", "Paramètres")
ListBox1.MultiSelect = fmMultiSelectExtended
For Each S In Worksheets
t = Application.Match(S.Name, sh, 0)
    If IsError(t) Then
        ListBox1.AddItem S.Name
    End If
Next
TextBox1 = 0
End Sub
Merci.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, hokousai, job75

hokousai
Pourquoi ne pas avoir continuer dans le fil que tu avais créé pour l'occasion?
(Ce fil-ci dormait tranquillement depuis 2013)
 

Discussions similaires


Haut Bas