Comment imprimer des feuilles masquées dans le classeur ?
sekouausud
-
sekouausud -
sekouausud -
Bonjour,
J'ai dans mon classeur 60 feuilles de même format mais masquées (1 feuille correspond à 1 page) et je peux afficher chacune de ces feuilles à partir de plusieurs boutons insérés dans 1 feuille précise du classeur, exemple, la feuille "WS". Pour le moment, si je veux imprimer 1 de ces feuilles masquées , la feuil "A" par exemple, je clic sur un bouton correspondant de feuil "WS" pour afficher cette feuil "A" avant de l'imprimer.
Sur chaque page à imprimer il y a un bouton "Retour" pour la fermer après impression et retourner à la feuille "WS" de départ où se trouvent les boutons sur lesquels je clic pour ouvrir ces feuilles masquées.
Je me suis rendu compte que cette façon de faire est fastidieuse pour imprimer les 60 pages.
Alors je demande s'il y a une solution pour imprimer en boucle une partie ou toutes ces 60 pages de feuilles masquées à partir d'un seul bouton inséré quelque part dans le classeur ou dans la feuille "WS".
Merci d'avance à toute la communauté de CCM.
J'ai dans mon classeur 60 feuilles de même format mais masquées (1 feuille correspond à 1 page) et je peux afficher chacune de ces feuilles à partir de plusieurs boutons insérés dans 1 feuille précise du classeur, exemple, la feuille "WS". Pour le moment, si je veux imprimer 1 de ces feuilles masquées , la feuil "A" par exemple, je clic sur un bouton correspondant de feuil "WS" pour afficher cette feuil "A" avant de l'imprimer.
Sur chaque page à imprimer il y a un bouton "Retour" pour la fermer après impression et retourner à la feuille "WS" de départ où se trouvent les boutons sur lesquels je clic pour ouvrir ces feuilles masquées.
Je me suis rendu compte que cette façon de faire est fastidieuse pour imprimer les 60 pages.
Alors je demande s'il y a une solution pour imprimer en boucle une partie ou toutes ces 60 pages de feuilles masquées à partir d'un seul bouton inséré quelque part dans le classeur ou dans la feuille "WS".
Merci d'avance à toute la communauté de CCM.
A voir également:
- Comment imprimer des feuilles masquées dans le classeur ?
- Comment faire un livret avec des feuilles a4 - Guide
- Journal de naissance gratuit a imprimer - Télécharger - Histoire & Religion
- Comment imprimer un tableau excel sur une seule page - Guide
- Bruler des feuilles de laurier - Guide
- Étiquette classeur a imprimer gratuit excel - Forum Logiciels
5 réponses
Bonjour,
Il faut effectivement faire une boucle sur les feuilles, les afficher puis imprimer et les masquer comme ceci :
Il faut effectivement faire une boucle sur les feuilles, les afficher puis imprimer et les masquer comme ceci :
Public Sub imprime() Dim feu As Worksheet For Each feu In ActiveWorkbook.Sheets If feu.Name <> "WS" Then feu.Visible = xlSheetVisible feu.PrintOut feu.Visible = xlSheetHidden End If Next feu End Sub
Bonjour,
Vous m'excusez pour le retard par rapport à ma réaction.
J'ai essayé votre solution mais toutes toutes les feuilles et toutes les pages du classeur ont été imprimées avec 1 bug n° 1004 : la méthode "visible" de l'objet "worksheet" a échoué
Je précise :
- les feuil à imprimer (60 au total) se nomment "NevalA1" jusqu' à "NevalA60";
- j'ai affecté à chacune de ces 60 feuil 2 macros (écrites automatiquement par la machine après lancement de création de macros) : Pour la feuil "NevalA59", la macro A qui permet de l'afficher à partir de la feuil "SevalA" est écrite comme suit:
Sub macroA
Sheets("Neval59").Visible = True
Sheets("NevalA59).Select
Range("E6").Select
End Sub.
Pour revenir à "SevalA", il y a la macro B que la machine a écrite comme suit :
Sub macroB
Sheets("Neval59").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("NevalA").Selec
Range("A1").Select
End Sub.
S'il est possible d'imprimer ces feuill masquées sans même les afficher, c'est bon, je peux m'en contenter car je pourrais au besoin afficher une feuille donnée à partir des macros que j'ai déjà insérées.
Merci
Cordialement
Vous m'excusez pour le retard par rapport à ma réaction.
J'ai essayé votre solution mais toutes toutes les feuilles et toutes les pages du classeur ont été imprimées avec 1 bug n° 1004 : la méthode "visible" de l'objet "worksheet" a échoué
Je précise :
- les feuil à imprimer (60 au total) se nomment "NevalA1" jusqu' à "NevalA60";
- j'ai affecté à chacune de ces 60 feuil 2 macros (écrites automatiquement par la machine après lancement de création de macros) : Pour la feuil "NevalA59", la macro A qui permet de l'afficher à partir de la feuil "SevalA" est écrite comme suit:
Sub macroA
Sheets("Neval59").Visible = True
Sheets("NevalA59).Select
Range("E6").Select
End Sub.
Pour revenir à "SevalA", il y a la macro B que la machine a écrite comme suit :
Sub macroB
Sheets("Neval59").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("NevalA").Selec
Range("A1").Select
End Sub.
S'il est possible d'imprimer ces feuill masquées sans même les afficher, c'est bon, je peux m'en contenter car je pourrais au besoin afficher une feuille donnée à partir des macros que j'ai déjà insérées.
Merci
Cordialement
Bonsoir,
Alors, le problème est, sans doute, mon niveau avec ma compréhension ou la clarté de mon exposé ;
En fait, dans la solution que vous me proposez, je crois comprendre que c'est pour afficher et imprimer seulement la feuille"ws" alors que moi je souhaite afficher et imprimer plusieurs feuilles (60 au total) nommées réellement "NevalA1" à "NevalA60".
Ce sont peut être les autres macros écrites qui empêchent la réussite de la solution à mon niveau ;
Donc est-ce qu'il peut y avoir 1 autre option, celle qui consisterait à imprimer en boucle (sans les afficher) toutes ces 60 feuilles "NevalA1" à "NevalA60". Il y a dans le classeur d'autres feuilles non cachées et imprimables en dehors du groupes des 60.
Alors, le problème est, sans doute, mon niveau avec ma compréhension ou la clarté de mon exposé ;
En fait, dans la solution que vous me proposez, je crois comprendre que c'est pour afficher et imprimer seulement la feuille"ws" alors que moi je souhaite afficher et imprimer plusieurs feuilles (60 au total) nommées réellement "NevalA1" à "NevalA60".
Ce sont peut être les autres macros écrites qui empêchent la réussite de la solution à mon niveau ;
Donc est-ce qu'il peut y avoir 1 autre option, celle qui consisterait à imprimer en boucle (sans les afficher) toutes ces 60 feuilles "NevalA1" à "NevalA60". Il y a dans le classeur d'autres feuilles non cachées et imprimables en dehors du groupes des 60.
Bonsoir,
Très bien, ça marche mais, si c'est pas un souhait de plus ; est-ce que je ne pourrait pas avoir une autre macro inverse (je la lierai à 1 autre bouton à côté du bouton imprimer) pour fermer toutes les feuilles après l'impression) car toutes affichées ont été alors qu'elles étaient cachées auparavant.
Merci d'avance, vous avez été génial.
Cordialement
Très bien, ça marche mais, si c'est pas un souhait de plus ; est-ce que je ne pourrait pas avoir une autre macro inverse (je la lierai à 1 autre bouton à côté du bouton imprimer) pour fermer toutes les feuilles après l'impression) car toutes affichées ont été alors qu'elles étaient cachées auparavant.
Merci d'avance, vous avez été génial.
Cordialement
Bonjour,
Cela devrait le faire ainsi :
Cela devrait le faire ainsi :
Public Sub cache_NevalA() Dim feu As Worksheet If MsgBox("Voulez-vous imprimer toutes les feuilles ?", vbYesNo, "Impression") = vbNo Then Exit Sub For Each feu In ActiveWorkbook.Sheets If InStr(1, feu.Name, "NevalA") Then feu.[A1].Activate feu.Visible = False End If Next feu End Sub
Bonjour,
Je suis perdu dans les liens me conduisant correctement au forum, c'est l'une des causes des doublons : Tous mes messages me reviennent, que faire ?
.
Merci à tous pour l'aide concernant le code d'impression, j'ai jubilé après avoir eu la solution mais un autre souci s'est présenté :
Je voudrais insérer dans le code d'impression une condition pour que la machine n'imprime (toujours en boucle) seulement les feuilles dont la valeur en C20 est supérieure à 0, je cherche par procédé à économiser l'encre et les feuilles car j'ai pas besoin de pages dont la valeur en C20 est égale à 0.
Je rappelle que toutes les feuilles ont la même disposition et 1 feuille compte 1 page.
Merci d'avance
Je suis perdu dans les liens me conduisant correctement au forum, c'est l'une des causes des doublons : Tous mes messages me reviennent, que faire ?
.
Merci à tous pour l'aide concernant le code d'impression, j'ai jubilé après avoir eu la solution mais un autre souci s'est présenté :
Je voudrais insérer dans le code d'impression une condition pour que la machine n'imprime (toujours en boucle) seulement les feuilles dont la valeur en C20 est supérieure à 0, je cherche par procédé à économiser l'encre et les feuilles car j'ai pas besoin de pages dont la valeur en C20 est égale à 0.
Je rappelle que toutes les feuilles ont la même disposition et 1 feuille compte 1 page.
Merci d'avance
Bonjour,
Il va falloir perdre l'habitude d'ouvrir les discussions en doublon, merci.
https://forums.commentcamarche.net/forum/affich-34251656-proteger-une-macro-specifiquee-par-mot-de-passe
et encore
https://forums.commentcamarche.net/forum/affich-34251749-comment-proteger-une-macro-par-mot-de-passe#p34252323
Il va falloir perdre l'habitude d'ouvrir les discussions en doublon, merci.
https://forums.commentcamarche.net/forum/affich-34251656-proteger-une-macro-specifiquee-par-mot-de-passe
et encore
https://forums.commentcamarche.net/forum/affich-34251749-comment-proteger-une-macro-par-mot-de-passe#p34252323
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Vous avez raison, c'est désagréable d'avoir des discussion en doublon, mais je compte sur la compréhension de tous car je suis limité en informatique et la lenteur associée à l'instabilité de la connexion ne me facilite pas la tâche.
Merci pour l'aide , j'ai jubilé après avoir eu la solution mais un autre souci s'est présenté :
Je voudrais insérer dans le code d'impression une condition pour que la machine n'imprime (toujours en boucle) seulement les feuilles dont la valeur en C20 est supérieure à 0, je cherche par procédé à économiser l'encre et les feuilles car j'ai pas besoin de pages dont la valeur en C20 est égale à 0.
Je rappelle que toutes les feuilles ont la même disposition et 1 feuille compte 1 page.
Merci d'avance
Vous avez raison, c'est désagréable d'avoir des discussion en doublon, mais je compte sur la compréhension de tous car je suis limité en informatique et la lenteur associée à l'instabilité de la connexion ne me facilite pas la tâche.
Merci pour l'aide , j'ai jubilé après avoir eu la solution mais un autre souci s'est présenté :
Je voudrais insérer dans le code d'impression une condition pour que la machine n'imprime (toujours en boucle) seulement les feuilles dont la valeur en C20 est supérieure à 0, je cherche par procédé à économiser l'encre et les feuilles car j'ai pas besoin de pages dont la valeur en C20 est égale à 0.
Je rappelle que toutes les feuilles ont la même disposition et 1 feuille compte 1 page.
Merci d'avance
Bonjour,
Je n'ai aucune réaction après le lancement de l'impression. J'espère que cela n'est pas lié au verrouillage des feuilles à imprimer mais avant la condition sur la valeur de C20 le code avait marché.
Le nouveau code est le suivant, sauf erreur de ma part.
Sub imprime()
Dim feu As Worksheet
If MsgBox("ATTENTION, Etes-vous sur de vouloir imprimer TOUS les relevés ?", vbYesNo + vbCritical + vbDefaultButton2, "Impression") = vbNo Then Exit Sub
For Each feu In ActiveWorkbook.Sheets
If InStr(1, feu.Name, "NevalA") And feu.Cells(3, 20) > 0 Then
feu.Visible = xlSheetVisible
feu.PrintOut
feu.Visible = xlSheetHidden
End If
Next feu
End Sub
Merci beaucoup
Je n'ai aucune réaction après le lancement de l'impression. J'espère que cela n'est pas lié au verrouillage des feuilles à imprimer mais avant la condition sur la valeur de C20 le code avait marché.
Le nouveau code est le suivant, sauf erreur de ma part.
Sub imprime()
Dim feu As Worksheet
If MsgBox("ATTENTION, Etes-vous sur de vouloir imprimer TOUS les relevés ?", vbYesNo + vbCritical + vbDefaultButton2, "Impression") = vbNo Then Exit Sub
For Each feu In ActiveWorkbook.Sheets
If InStr(1, feu.Name, "NevalA") And feu.Cells(3, 20) > 0 Then
feu.Visible = xlSheetVisible
feu.PrintOut
feu.Visible = xlSheetHidden
End If
Next feu
End Sub
Merci beaucoup
Vous m'excusez pour le retard par rapport à ma réaction.
J'ai essayé votre solution mais toutes toutes les feuilles et toutes les pages du classeur ont été imprimées avec 1 bug n° 1004 : la méthode "visible" de l'objet "worksheet" a échoué
Je précise :
- les feuil à imprimer (60 au total) se nomment "NevalA1" jusqu' à "NevalA60";
- j'ai affecté à chacune de ces 60 feuil 2 macros (écrites automatiquement par la machine après lancement de création de macros) : Pour la feuil "NevalA59", la macro A qui permet de l'afficher à partir de la feuil "SevalA" est écrite comme suit:
Sub macroA
Sheets("Neval59").Visible = True
Sheets("NevalA59).Select
Range("E6").Select
End Sub.
Pour revenir à "SevalA", il y a la macro B que la machine a écrite comme suit :
Sub macroB
Sheets("Neval59").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("NevalA").Selec
Range("A1").Select
End Sub.
Cordialement