A voir également:
- Comment imprimer des feuilles masquées dans le classeur ?
- Comment faire un livret avec des feuilles a4 - Guide
- Journal de ma naissance gratuit à imprimer - Télécharger - Histoire & Religion
- Comment signer un pdf sans l'imprimer - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Fusionner feuilles excel - Guide
5 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 713
6 janv. 2017 à 22:53
6 janv. 2017 à 22:53
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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 713
7 janv. 2017 à 18:32
7 janv. 2017 à 18:32
Bonjour,
j'ai testé mon code qui fonctionne chez moi : la feuille qui est affichée s'appelle bien "WS" ?
Sinon il faut remplacer par le nom réel de la feuille.
j'ai testé mon code qui fonctionne chez moi : la feuille qui est affichée s'appelle bien "WS" ?
Sinon il faut remplacer par le nom réel de la feuille.
sekouausud
>
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
7 janv. 2017 à 18:57
7 janv. 2017 à 18:57
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.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 713
7 janv. 2017 à 19:05
7 janv. 2017 à 19:05
Bonsoir,
Essaie avec ceci :
Essaie avec ceci :
Public Sub imprime() Dim feu As Worksheet For Each feu In ActiveWorkbook.Sheets If InStr(1, feu.Name, "NevalA") Then feu.Visible = xlSheetVisible feu.PrintOut feu.Visible = xlSheetHidden End If Next feu End Sub
sekouausud
>
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
7 janv. 2017 à 19:47
7 janv. 2017 à 19:47
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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 713
7 janv. 2017 à 21:26
7 janv. 2017 à 21:26
Bonsoir,
Sans doute que l'impression trop lente a bloqué le masquage.
Pour cacher toutes ces feuilles :
Sans doute que l'impression trop lente a bloqué le masquage.
Pour cacher toutes ces feuilles :
Public Sub cache_NevalA() Dim feu As Worksheet For Each feu In ActiveWorkbook.Sheets If InStr(1, feu.Name, "NevalA") Then feu.Visible = False End If Next feu End Sub
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 713
8 janv. 2017 à 11:38
8 janv. 2017 à 11:38
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
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
1 557
8 janv. 2017 à 11:40
8 janv. 2017 à 11:40
bonjour, il ne manque pas l'impression?
sekouausud
>
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
8 janv. 2017 à 13:27
8 janv. 2017 à 13:27
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
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 110
8 janv. 2017 à 11:49
8 janv. 2017 à 11:49
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
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
1 557
8 janv. 2017 à 13:51
8 janv. 2017 à 13:51
bonjour, si tu as utilisé le code proposé qui contient
If InStr(1, feu.Name, "NevalA") Then, il te suffit de changer cela en:
If InStr(1, feu.Name, "NevalA") and feu.Cells(3,20) > 0 Then
sekouausud
>
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
8 janv. 2017 à 14:15
8 janv. 2017 à 14:15
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
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
1 557
8 janv. 2017 à 14:24
8 janv. 2017 à 14:24
Que contient C20, peux-tu donner des exemples?
sekouausud
>
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
8 janv. 2017 à 14:32
8 janv. 2017 à 14:32
C20 contient le total des points obtenus : "0,05", "11", "192, 5", etc. C'est une formule qui a renvoyé ces valeur dans C20.
Merci à vous
Merci à vous
yg_be
Messages postés
23417
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
5 janvier 2025
1 557
8 janv. 2017 à 14:51
8 janv. 2017 à 14:51
il faut Cells(20,3), pas (3,20)!
If InStr(1, feu.Name, "NevalA") And feu.Cells(20, 3) > 0 Then
Modifié par sekouausud le 7/01/2017 à 17:06
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