Bonjour,
J'ai un fichier excel avec deux zones definies par un nom FOND et ELEC
Je souhaiterai mettre un bouton imprimer qui me donne le choix avec une case à cocher par champ soit FOND , soit ELEC ou les deux .
Merci de votre aid e
Bonjour,
J'ai un fichier excel avec deux zones definies par un nom FOND et ELEC
Je souhaiterai mettre un bouton imprimer qui me donne le choix avec une case à cocher par champ soit FOND , soit ELEC ou les deux .
Merci de votre aid e
Hello...
Se serait plus simple avec un fichier...
Meilleures salutations
Shmouki
Je vous joins le fichier
Sur l'onglet sommaire en fait je vousdrez que quand on clique sur imprimez une boite de dialogue s'affiche avec deux cases à cocher ELEC et FOND
Si la case a cochée ELEC et cochée que ca imprime la plage de donnée nommée ELEC , si c'est FOND qui es cochée que ca imprime la plage de donnée nommée FOND si les deux sont cochées que ca imprime les deux si c'est possible
merci de votre aide
Bonjour,
Déja du creer un bouton dans ta feuille :
Tu creer un userform avec 2 boutons options un bouton ok un bouton pour quitter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub CommandButton1_Click() UserForm1.Show End Sub
RE,
Un code pour la feuille, il y a peu être plus simple mais ça semble fonctionner :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Private Sub CommandButton1_Click()' Bouton OK Dim ImpSource As String If Me.OptionButton1.Value = True Then ImpSource = ThisWorkbook.Names("ELEC") Else ImpSource = ThisWorkbook.Names("FOND") End If Dim NomFeuille As String, NomAdresse As String NomFeuille = Mid(ImpSource, 2) pos = InStrRev(NomFeuille, "!") NomFeuille = Mid(NomFeuille, 1, pos - 1) NomAdresse = Mid(ImpSource, pos + 2) Worksheets(NomFeuille).PageSetup.PrintArea = NomAdresse Worksheets(NomFeuille).PrintOut Copies:=1, Collate:=True End Sub Private Sub CommandButton2_Click() ' Bouton quitter Unload Me End Sub
Simplification
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub CommandButton1_Click() Dim ImpSource As Range Dim NomPlage As String NomPlage = IIf(Me.OptionButton1.Value, "ELEC", "FOND") Set ImpSource = ThisWorkbook.Names(NomPlage).RefersToRange Unload Me With Worksheets(ImpSource.Parent.Name) .PageSetup.PrintArea = ImpSource.Address .PrintOut End With Set ImpSource = Nothing End Sub
Merci mercatog pour la simplification, je trouve ton code limpide
Edit : En fait j'avais essayé d'utiliser le range mais comme un débutant je crois que j'avais oublié le SET, olala il faut que je prenne des vacances !
Et au lieu de
Code : Sélectionner tout - Visualiser dans une fenêtre à part With Worksheets(ImpSource.Parent.Name)suffit. Ce qui donne en fin de compte
Code : Sélectionner tout - Visualiser dans une fenêtre à part With ImpSource.Parent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub CommandButton1_Click() Dim ImpSource As Range Dim NomPlage As String NomPlage = IIf(Me.OptionButton1.Value, "ELEC", "FOND") Application.ScreenUpdating = False Unload Me Set ImpSource = ThisWorkbook.Names(NomPlage).RefersToRange With ImpSource.Parent .PageSetup.PrintArea = ImpSource.Address .PrintOut End With Set ImpSource = Nothing End Sub
Partager