Demander à l'utilisateur ce qu'il veut imprimer

Résolu/Fermé
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 - 10 oct. 2015 à 20:27
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 - 20 oct. 2015 à 11:53
Bonsoir,
J'ai pu, grâce à l'implication et l'aide de la communauté, proposer un fichier super à mes collègues. J'en suis ravi.
Cependant, il y a (encore) un soucis avec les impressions.
J'ai tenté de reprendre l'aide apportée ici : https://forums.commentcamarche.net/forum/affich-31726652-imprimer-selection-sur-plusieurs-feuilles en vain...
J'ai dû modifier des paramètres d'impression ou quelque chose du genre... Je me suis perdu dans les méandres des sauts de pages et des chiffres.

Voici le fichier en question : https://www.cjoint.com/c/EJkr5ylN55y
Il s'agit d'un fichier d'aide au pointage des élèves participants aux activités périscolaires.

Deux possibilités s'offrent donc à moi :
1) "Réparer" le code et le faire fonctionner selon le système actuel de boutons.
2) Utiliser une boite de dialogue

Je voudrais modifier complètement la vision actuelle de l'impression dans ce fichier.
Au lieu d'une multitude de boutons, je voudrais savoir s'il est possible de n'en avoir un seul, qui serait nommé "Imprimer", et d'utiliser l'option 2.
Au clic, une boite de dialogue s'ouvre, et demanderait à l'utilisateur ce qu'il souhaite imprimer. La boite de dialogue pourrait ressembler à ceci : https://www.cjoint.com/c/EJksvxf7n0y

Je crois savoir que ma demande est très complexe (peut-être même irréalisable) mais ce serait le top du top ! :D

Je vous remercie par avance !


4 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
12 oct. 2015 à 08:09
Bonjour,

Voilà un exemple avec une listBox. Il suffit de sélectionner la feuille à imprimer dans la liste.

http://www.cjoint.com/c/EJmggSauDvQ
0
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 54
Modifié par Nai le 12/10/2015 à 13:40
Magnifique ! :D
J'ai tenté Ctrl + clic pour sélectionner plusieurs feuilles, en vain.
Aussi, j'aurais besoin d'un autre paramètre d'impression : pouvoir sélectionner uniquement la période que je souhaite (p1, p2, etc... (en sachant que p1 se trouve sur chaque feuille dans la plage A34:K91, idem pour les autres périodes avec d'autres plages identiques)).
Après la première listBox, une autre pourrait éventuellement suivre, qui cette fois demanderait la période à imprimer. Reste à savoir comment sélectionner plusieurs feuilles (j'avais pensé à des cases à cocher, mais si tu as choisi cette méthode, c'est probablement qu'elle est la plus adaptée.
La boite de dialogue de l'imprimante m'intéresse peu si ces options sont réalisables.

Merci infiniment ! :)
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
12 oct. 2015 à 14:56
J'ai repris les macros p1, p2 etc. dans des OptionButton

Avec la listBox, l'impression de plusieurs feuilles n'est pas possible, on se sert de:
ActiveSheet.PrintOut qui imprime la feuille active comme son nom l'indique.

C'est la méthode la plus simple. Sinon on rentre dans un processus beaucoup plus compliqué suivant le nombre de feuilles, il faut étudier toutes les éventualités.
C'est toujours faisable, mais vu le nombre de feuilles!

http://www.cjoint.com/c/EJmmWBym1cQ
0
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 54
12 oct. 2015 à 18:16
"J'ai repris les macros p1, p2 etc."
Pour le coup, j'ai un problème avec ces macros...
J'ai testé une multitude des résolutions. Je pense que je ne parviens à déterminer quel onglet est quelle feuille.
 If Feuille.Index > 1 And Feuille.Index < 17 Then 'Feuilles Machin à Plantes

Ça m'imprime pas ce qu'il faut :/
Je reviens vers le sujet cité plus haut (auquel tu avais apporté une solution).

Encore merci :)
0
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 54
12 oct. 2015 à 18:51
"C'est toujours faisable, mais vu le nombre de feuilles! "
Peut-être que si j'avais les 2 ou 3 premières feuilles, je pourrais tenter les autres feuilles ? :)
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 12/10/2015 à 16:55
Bonjour a vous deux,

une autre approche de la chose avec des listboxs multiselect. Ateliers Lundi et Jeudi OK, mais Stat, liste onglets pas OK et surtout pas compris pour l'impression car une seule ligne par Atelier donc !!!!!!!!!!!!!!!!!!

https://www.cjoint.com/c/EJmoyFJTjyf

A+
0
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 54
12 oct. 2015 à 18:49
Bonjour f89 ^^
"surtout pas compris pour l'impression car une seule ligne par Atelier donc"
C'est à dire ? Je ne comprend pas trop ce que tu ne comprend pas (très philosophique comme phrase :D)
C'est magnifique en tout cas ! Le rendu, j'adore ! Exactement ce qu'il me faut !
Pour les stats, je m'en occupe dès que j'ai pigé ce que je dois modifier ^^
Par contre, le lundi et le jeudi se confondent. Je n'ai pas trouvé où les feuilles sont sélectionnées. Le lundi, parfait, mais le jeudi, ça m'imprime la feuille Accueil et de nouveau les ateliers du lundi sans le dernier (en l'occurrence de Accueil à Piège) :/
La plage est bonne :
Set Plage_Ateliers = Worksheets("Accueil").Range("B20:B34")

La référence à ListBox3 est (ou semble être) (lignes 14 à 19) :
Private Sub UserForm_Activate()
    With ListBox1
        .Clear
        For n = 5 To 19
            .AddItem Worksheets("Accueil").Range("B" & n).Value
        Next n
    End With
    With ListBox2
        .Clear
        For n = 1 To 5
            .AddItem "Période " & n
        Next n
    End With
    With ListBox3
        .Clear
        For n = 1 To 5
            .AddItem "Période " & n
        Next n
    End With
End Sub

Je constate que ListBox2 et 3 sont identiques. Je suppose qu'il faut modifier :
For n = 1 To 5

Mais pas sûr et je ne sais pas à quoi cela correspond :/

Merci pour le temps passé ! :)
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023
Modifié par f894009 le 12/10/2015 à 19:33
Re,

Par contre, le lundi et le jeudi se confondent C'est ce que j'ai constate apres avoir poster, ayant fait des essai sur le Lundi, ai cru bon que le jeudi serait sans probleme. J'ai juste fait une modif dans le VBA de l'UF:
Userform_Initialize
au lieu de
Userform_Activate
et ca marche.

C'est à dire ? Je ne comprend pas trop ce que tu ne comprend pas

L'onglet Statistique n'a que trois tableaux, un ateliers Lundi, un ateliers Jeudi et un global, donc je ne comprends pas pourquoi imprimer ex: une seule ligne d'un tableau sur le choix d'un seul atelier, ou y a cake chose que je n'ai pas compris
0
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 54
12 oct. 2015 à 19:52
L'onglet Statistiques permet de connaitre le nombre d'heures que représente :
Chaque atelier,
Chaque période,
Chaque atelier de toutes les périodes,
Chaque période de tous les ateliers.
Ce sont des informations très utiles qui nous permettent d'établir des statistiques de fréquentation. Les enfants sont-ils plus nombreux le lundi que le jeudi ? L'atelier x a-t-il été fréquenté par tous les enfants ? Ces heures de fréquentation sont également, pour ne pas dire surtout, demandé par la CAF (afin d'établir la subvention correspondante).
Cet onglet de stats n'a vocation à être imprimé qu'à la fin de chaque période, ou, pour être plus précis, à la fin de l'année scolaire.

Concernant
Userform_Initialize
et
Userform_Activate
, je n'ai pas du comprendre. J'ai édité Activate vers Initialize et ça ne change rien :D
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023
13 oct. 2015 à 08:46
Bonjour,

Cet onglet de stats n'a vocation à être imprimé Oui, je sais a quoi servent les Stat. Le soucis n'est pas la, pourquoi proposez vous d'imprimer par atelier(s) (listes de choix) n'importe quand, parce que a l'extreme une ligne sur une feuille A4 ca fait un peu leger

Concernant Userform_Initialize et Userform_Activate Il suffisait de remplacer Activate par Initialize, pas d'avoir les deux procedures !!!!!
0
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 54
13 oct. 2015 à 09:23
Bonjour :)
Les statistiques ne sont pas imprimées avec chaque période. L'idée c'est de n'avoir qu'une seule feuille à consulter pour tout savoir.
Vous pensiez à quoi en particulier ? Imprimer les stats de chaque atelier (la plage A324:K333) ? Si oui, c'est une excellente idée. Il ne me resterait qu'à ajouter le nom de l'atelier :)
Pour l'Userform, c'est ce que j'ai fait. J'ai remplacé le mot "Activate" par le mot "Initialize"
Private Sub UserForm_Initialize()
    With ListBox1
        .Clear
        For n = 5 To 19
            .AddItem Worksheets("Accueil").Range("B" & n).Value
        Next n
    End With
    With ListBox2
        .Clear
        For n = 1 To 5
            .AddItem "Période " & n
        Next n
    End With
    With ListBox3
        .Clear
        For n = 1 To 5
            .AddItem "Période " & n
        Next n
    End With
End Sub

À priori, la procédure n'existe pas deux fois. Sauf si elle figurait ailleurs aussi (auquel cas je ne l'ai pas trouvé).
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
14 oct. 2015 à 10:17
Bonjour,

Ai trouve, les cellules de noms d'ateliers Jeudi (ex:2) sont des nombres pas du texte, ce qui fait que je prenais l'index de l'onglet (2) au lieu du nom "2" pour les impressions du Jeudi. Je me suis laisse avoir du fait que ces cellules sont justifiees a gauche (place des nombres en texte sur excel), Truc et Oh auraient du m'interpeler, mais bon ....

https://www.cjoint.com/c/EJoipkfmqOf


A+
0
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 54
14 oct. 2015 à 11:19
Ah ! Autant pour moi, j'y ai pas pensé...
J'ai un soucis avec les ateliers du lundi. Le débogage me surligne :
Set Plage_Ateliers = Worksheets("Accueil").Range("Ateliers_Lundi")

Je ne comprend pas pour le coup :/
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023
14 oct. 2015 à 11:22
Re,

Si vous prenez votre fichier, onglet Accueil, il y a deux noms de plages de cellules a definir: Ateliers_Lundi et Ateliers_Jeudi avec les plages des noms d'onglets respectifs (voir "mon fichier")
0
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 54
14 oct. 2015 à 12:07
Je n'ai pas réussi. J'ai corrigé la faute à "Atelier_Lundi" en "Ateliers_Lundi", la plage du jeudi était faite, et j'ai une erreur de compilation maintenant :
Déclaration existante dans la portée en cours

Le fichier que je pense avoir correctement corrigé : https://www.cjoint.com/c/EJokhowkRdF

Merci :)
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023
14 oct. 2015 à 13:32
Re,

Bien gentil de vouloir modifier votre fichier avec les modifs du "mien", mais y en a qui ne sautent pas a l'oeil:

https://www.cjoint.com/c/EJolF0FYeSf
0
Nai Messages postés 711 Date d'inscription vendredi 29 avril 2005 Statut Membre Dernière intervention 25 août 2023 54
14 oct. 2015 à 19:40
Ça fonctionne ! :)
Qu'est-ce qui ne saute pas à l'oeil ? J'ai fait une bêtise en tentant une correction ? :/
0