Je voudrais créer une macro (sur un bouton) qui imprime une feuille.
L'utilisateur sélectionne, sur une feuille "PRINCIPAL", dans une liste déroulante, ce qu'il veut, et une petite formule me donne en F6 le nom de la feuille correspondante.
J'ai donc écrit:
Code:
Sub Imprimer()
Sheets(Sheets("PRINCIPAL").Range("F6").Value).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("PRINCIPAL").Activate
End Sub
Mais la macro plante et me rend:
Erreur d'execution '9':
L'indice n'appartient pas à la sélection.
Quelqu'un aurait-il une solution à me proposer?
Je ne comprends pas l'erreur, erreur de code? j'ai oublié d'initialiser une variable ou quelque chose du style? je sais pas trop...
La valeur que tu récupere en F6 ne doit pas etre correcte.
Il y a peut etre un (des) espace(s) à la fin.
En tous les cas je reproduits ton pb de cette façon ..
voir fichier joint
J'ai rajouter un petit bout de code pour voir s'il y a des espaces dans ton nom de feuille.
J'ai pas trouvé d'espace ni quoi que ce soit...
Par contre j'ai ajouté une variable:
Code:
Sub Imprimer()
Dim feuille As String
feuille = Sheets("PRINCIPAL").Range("F6").Value
Sheets(feuille).Select
ActiveWindow.SelectedSheets.PrintPreview
Sheets("PRINCIPAL").Activate
End Sub
Et là ca marche sans problème... ne pas chercher à comprendre, ne pas chercher...
Merci en tout cas (je ne connaissais pas .PrintPreview)
J'ai pas trouvé d'espace ni quoi que ce soit...
Par contre j'ai ajouté une variable:
Code:
Sub Imprimer()
Dim feuille As String
feuille = Sheets("PRINCIPAL").Range("F6").Value
Sheets(feuille).Select
ActiveWindow.SelectedSheets.PrintPreview
Sheets("PRINCIPAL").Activate
End Sub
Et là ca marche sans problème... ne pas chercher à comprendre, ne pas chercher...
Merci en tout cas (je ne connaissais pas .PrintPreview)