Générer des onglets automatiquement

Brigitte

XLDnaute Barbatruc
Bonjour tout le monde,

Vous trouverez en pièce jointe mon fichier avec la problématique suivante :

- Onglet 1 : données (avec enregistrements A, B, C, D, E, ....)
- Onglet 2 : masque (avec liste déroulante en haut qui reprend A, B)... et donc les données correspondantes

- Onglets suivants : idem masque mais un onglet par enregistrement pour consultation

Si je change quelque chose dans le masque (rajout ligne, changement donnée, couleur...), il faut donc refaire tous les onglets (clic droit/copier/... c'est un peu fastidieux).

J'aimerais donc n'avoir à intervenir que sur les DEUX premiers ONGLETS, et que sur l'onglet MASQUE, un bouton me crée une fois mes changements faits, tous les onglets suivants automatiquement, avec juste le choix, en liste déroulante du premier enregistrement, puis du second... (dans l'ordre de la liste figurant dans l'onglet DONNEES, soit A, B, C) et en prenant comme nom d'onglet A, B, C... et si possible de couleur différente (peu importe, mais différente pour chacun et différente des onglets MASQUE et DONNEES).

Résumé : après intervention quelconque sur l'onglet MASQUE, une génération (sur un clic) de tous les onglets correspondants A, B, C... qui sont une copie de cet onglet avec juste un choix différent dans la cellule avec liste déroulante en haut en D1.

PS : bien sûr qu'en changeant en haut dans la liste déroulante, je peux tout visualiser, mais je souhaite pouvoir naviguer ensuite d'un onglet à l'autre pour comparer.

Merci d'avance.
 

Pièces jointes

  • Etude eff Profs (test).zip
    17.2 KB · Affichages: 63
Dernière édition:
G

Guest

Guest
Re : Générer des onglets automatiquement

Hello Brigitte:)

voici, je crois, ce que tu demandes. Par contre j'ai pas su s'il fallait conserver pour chaque feuille, la validation de D1. Dis le moi et je changerai cela cet Après-midi.

A bientôôôôôôôt,

[EDIT] Nouvelle version ci-jointe pour que tu puisses avant autant de feuilles que de lettres de l'alphabet.
 
Dernière modification par un modérateur:

Brigitte

XLDnaute Barbatruc
Re : Générer des onglets automatiquement

Ouahouuuuuuuuuuuuu,

Exactement ce que je voulais, qu'est ce que j'explique bien, arf !!!! je rigole, qu'est ce que tu es fort !!!

Pour ta petite question, faut que je demande au Colonel. Mais je reformule : veux tu dire qu'une fois les onglets générés, cela mette "en dur" la cellule D1 ? si c'est cela, ce n'est pas bête... dis moi et je vais demander à mon chef.

Sinon petite requête, est ce qu'on pourrait enlever de chaque onglet généré le bouton "génération d'onglets" ?

Et pour finir, si je rajoute des données en colonne A de l'onglet DONNEES, par exemple : F, G... est ce que cela pourrait les prendre en compte ?

La cerise sur le gâteau ? que cela classe automatiquement par ordre alphabétique les onglets (en fait une vérification lors de la génération que si on a changé l'ordre, ou rajouté un nom, cela remette tout : données et onglets créés dans l'ordre).

Quoi, j'en demande trop ? normal, ca semble si facile quand on fait rien... Et en fait le GRAND TALENT que vous avez, preuve s'il en est, c'est que ca semble facile...

Ne tiens pas compte des demandes trop dures, bien sûr... C'est juste au cazou.

Bisous pour la peine.. et gros merci.

A bientôooooooooooooot
 
G

Guest

Guest
Re : Générer des onglets automatiquement

Re Brigitte,

Ce qu'on peut faire, c'est au départ de la macro trier, la colonne A de la feuille 'Données Cis 2008' puis créer les feuille ensuite suivant cet ordre?

Dans la macro j'ai pensé que les noms de feuilles étaient toujours des lettres, mais cela n'est peut-être pas le cas?

Dans l'ordre des feuilles,est-ce que les feuilles 'Données Cis 2008' et 'Masque' sont toujours les premières?

A plus
 

Brigitte

XLDnaute Barbatruc
Re : Générer des onglets automatiquement

Re,

Oui c'est exactement ca :

1. au début de la macro trier (attention donc, la colonne peut s'agrandir un peu)
2. Oui les A, B, C... vont changer (nom des Casernes) ; j'ai enlevé pour "confidentialité"
3. Oui on laissera les deux premiers onglets devant

MAIS, on pense créer un onglet supplémentaire de données spécifiques (pour la partie à droite des noms de casernes : onglets données, colonnes K à R pour ne laisser sur le premier onglet DONNEES que les données CIS). Sur le second onglet données (qu'on pourrait appeler "paramètres généraux") on aura donc que ces données de droite. Pour faire plus propre...

Est ce possible d'envisager de créer des noms supplémentaires après A, B, C... F, G, H (casernes) ? et ne pas mettre le bouton sur les onglets créés ?

Question subsidiaire (encore !!) : quand on passera à 2009... quid de la macro ? pourrait on prévoir qu'elle "s'adapte" à l'onglet ou qu'on saisisse qq part l'année au début de celle ci ? Plus simple, ne vaudrait il pas mieux qu'on enlève 2008 dans le nom des onglets quitte à le mettre ailleurs (je réfléchis : le souci c'est que je comprends pas tout, car ce n'est pas mon boulot... le Colonel a juste besoin de lumières excel, et donc s'est adressé à moi, à tout zazard !!!)

Merci beaucoup en tout cas...
 
Dernière édition:
G

Guest

Guest
Re : Générer des onglets automatiquement

Hello Brigitte,

voici une mouture qui offre les possibilités pour les années suivantes.
Elle cherche les feuille 'Données CIS' et 'Masque' par le début des noms sans les années

Tu verras un autre bouton qui pernet de ne générer que les nouvelles feuilles(en plus de l'autre qui génère toutes les feuilles).

Les noms des feuilles sont créés à partir du contenu des cellules de la colonne A de 'Données CIS YYYY'.

en fin de macro, appel à une macro de tri des feuilles.

tu peux appeler la macro de tri indépendement de la macro de création.

Les boutons ne sont plus sur les nouvelle feuille. Pour la validation de D1 je l'ai gardé en attendant ton signal pour l'enlever.

Essaie de tester le plus possible en situation réelle.

Lorsque tu auras testé tout cela on pourra ajouter une autre possibilité:
supprimer une feuille si son nom disparait de la colonne A de 'données Cis'?


A bientôt
 

Brigitte

XLDnaute Barbatruc
Re : Générer des onglets automatiquement

Yesssssssssss,

Mille mercis... Nous allons tester, tester... et je reviendrai te dire (pas forcément ce jeudi... car le Colonel est très pris, et moi en congés demain jusque lundi puis à mon tour aussi très prise).

Tite question bête comme je comprends pas trop les macros (j'ai ouvert la macro... mais) : le tableau se trie bien des colonnes A à I seulement ? car comme j'arrive pas à le voir... (pas bien cherché sans doute).

C'est déjà extra !!
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Générer des onglets automatiquement

Re,

Le Colonel a répondu à quelques questions et m'a redonné son fichier. J'ai essayé de mettre à l'intérieur la macro, les boutons (mais j'ai pas réussi encore à affecter les macros à ces boutons).

Pour les questions :

- Il veut bien qu'une fois générés les onglets, la cellule D1 devienne fixe (comme le nom de l'onglet) dans les onglets créés

- Il veut bien un bouton pour supprimer éventuellement un onglet devenu obsolète car on a essayé et en effet, ca bugge

- On a supprimé la feuille cachée Tableau Général qui n'était pas utile mais à voir si cela aura une action sur ta macro ?

- Bien noté pour le nom d'onglet sans que l'année soit utilisée : super

Voilou... Je me sauve, je remets le fichier (sans boutons affectés... si plus de temps j'aurais sans doute trouvé...)

Bisous et merci... pour la suite si tu peux.

EDIT : mon dieu, je viens de voir que le Colonel, en rajoutant une feuille VARIABLES, a changé le nom de l'onglet DONNEES CIS en Effectifs CIS... Là je dois partir, si tu peux regarde, sinon je verrai plus tard... Le farceur !
 

Pièces jointes

  • Etude eff Profs (test) POUR HASCO.zip
    25.7 KB · Affichages: 85
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : Générer des onglets automatiquement

Bonsoir,

Ben vraiment je n'y arrive pas plus avec un peu de temps. En fait j'ai copié/collé ta macro, changé les noms d'onglets, mais une fois créés les commandbutton, je ne parviens pas à en faire ce que toi tu avais fait... J'ai pourtant essayé de toutes mes forces... Mais rien à faire !

Je suis désoléeeeeeeee.

PS : voir le nouveau fichier dans mon post précédent.
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Générer des onglets automatiquement

Bonjour Brigitte

Une piste:

Ton bouton generer nouveaux onglets (le beau bleu) ,il s'appelle CommandButton2

on devrait donc avoir dans le module de la feuille Masque quelque chose comme

Code:
Private Sub CommandButton2_Click()
Call GenererOnglets(False)
End Sub
 

Brigitte

XLDnaute Barbatruc
Re : Générer des onglets automatiquement

Merci de venir à mon secours Pierrejean et coucou,

En fait les deux commandbutton créés par Hasco s'appellent respectivement :

- cmdGenererNouveauxOnglets
- cmdGenererOnglets

Et c'est là que mes petites connaissances ou mon intuition ne suffisent pas.

En effet, quand j'essaie de les recréer, une fois apparents, je copie/colle la macro private sub correspondante. Mais ca ne fait pas comme lui... En haut dans General et dans Declarations, je n'ai pas la même chose.

Lui a :


Private Sub cmdGenererNouveauxOnglets_Click()
GenererOnglets False
End Sub

Puis :

Private Sub cmdGenererOnglets_Click()
GenererOnglets True
End Sub

Moi si je colle dans mes deux nouveaux boutons créés ces deux macros puis renomme en cmd... boum, ca colle pas...

Je pense qu'Hasco va m'aider. Mais j'aurais tant voulu comprendre... Sans doute trop dur pour moi, et pi, je bidouille, je bidouille, je vais tout casser, ouh la la.

A bientôt.
Et ca bugge, bien sûr.

Edit : t'embête pas Pierre, Gérard vient de me dire qu'il avait corrigé... Et après faudra que je comprenne... Pas gagné !!! Le pauvre, en voulant lui gagner du temps en collant sa macro, je risque de lui en avoir plutôt fait perdre... Je vais pas me faire des zamis... je vais mettre des lunettes noires le 04 octobre.
 
Dernière édition:
G

Guest

Guest
Re : Générer des onglets automatiquement

Brigitte,

Voici les modifications demandées.

Pour affecter une macro aux boutons:

Menu Affichage/Barre d'outils/boîtes à outils contrôles.
Cliquer sur l'équerre (en haut et à gauche de la barre d'outils).
Quand elle est grisée, double-click sur un bouton
Tu rentres dans le module et la procédure du bouton: CommandButtonN_Click()
End Sub

Ou N est un numéro de boutton.
Entre ces deux lignes tu mets:

GenererOnglets True 'Pour le bouton Générer tous les onglets
GenererOnglets False ' pour le bouton Générer les nouveaux onglets

Ce qui correspond dans le fichier joint à:

Code:
Private Sub CommandButton1_Click()
    GenererOnglets True
End Sub
Private Sub CommandButton2_Click()
    GenererOnglets False
End Sub


J'ai commenté quasiment toutes les lignes de codes, pour que tu puisse au moins voir de quoi il s'agit.

Puisque le Colonnel change les noms de feuilles, j'ai modifier le code pour la macro cherche une feuille dont le nom contienne "Masque" et une autre dont le nom contienne "CIS" (J'espère que le colonnel ne fera pas une feuille "FRANCIS":D).

Pour le tri, la macro ne trie que les feuilles dont le nom est en colonne A de la Feuille 'machin CIS', pas les autres. Elle place les feuilles après la feuille 'Masque'.

Pour la suppression, vu qu'il risque d'ajouter des feuilles, il est difficile de supprimer les feuilles dont le nom n'apparaitrait plus dans la feuille CIS (obsolète) sans supprimer des feuilles ajoutées manuellement et qu'il voudrait conserver. A moins que toutes les feuilles créées par macro aient un identifiant commun dans le nom.

Sur ce, je vais manger et m'arrêter pour ce soir. Je passerai vers 20:30 voir s' il y a des nouvelles.

A bientôt
 

Brigitte

XLDnaute Barbatruc
Re : Générer des onglets automatiquement

Super, merci beaucoup.

Alors dans l'ordre :

- Ca marche nickel (je testerai encore et encore, promis)

- Vu pour les commandButton (merci pour les explications, j'avais réouvert un topo de michel xld dans son wiki mais là ca confirme), sauf que dans l'ancienne mouture, ils s'appelaient cmdGenererOnglet et cmdGenererNouveauxOnglets et là non, pourras tu me dire la différence, car quand j'essayais, j'y arrivais justement pas (juste pour savoir)

- J'ai rajouté un nom (en fait ce sera les noms des casernes de pompiers : on en a 100 mais je crois qu'il fera ca sur les 5/6 principales grosses casernes) et ca a super bien marché

J'ai juste à refaire mes formules Index/equiv dans le masque dans les cellules : I5 à K6 car j'avais fait un peu vite, et pour un exemple ; Les plages sont mauvaises en cas de rajout : =INDEX('Effectifs CIS 2008'!$D$2:$D$100;EQUIV($D$1;CIS;0)) au lieu de ce qui existe dans ces 6 cellules : =INDEX('Effectifs CIS 2008'!$D$2:$D$6;EQUIV($D$1;CIS;0)). Ca c'est rien du tout et au moins : je sais faire.

Pour les suppressions (mettons qu'on supprime une ligne/caserne, donc), s'il peut ensuite supprimer la feuille à la main et que par la suite, ca ne génère pas un onglet inutile ou un bug... ca ira très très bien. Tu as raison, va savoir ce qu'il peut nous inventer (mais je crois qu'il rajoutera pas de feuille).

Ca m'a l'air de fonctionner au poil.

Pour les noms donc, pas de risque de Francis, aucune caserne ne porte ce nom là, il s'agit de villes de Loire-Atlantique mais j'ai préféré pas les mettre, on sait jamais si qqun voyait ce fichier et allait raconter à ses collègues qu'on est en train de revoir les effectifs, ce serait la révolution, hi hi.

En tout cas, mille mercis (comment ca tu en es à 10.000 ?), c'est amplement mérité, du sur mesure comme ca. Moi je trouve ca super, j'ai les idées, je les explique tant bien que mal, et vos petits cerveaux en ébullition exaucent mes désirs. Le pied, xld (ca rime !).

Encore plus envie d'être au 04 octobre. Bonne soirée... Je suis aux anges moi, presqu'envie de me mettre aux maquereaux. Quoi, t'es pas d'accord ? t'as peur ? t'as bien raison. Bisous

Edit : voilà c'est parti chez le Colonel, j'espère qu'on aura fait plaisir, hi hi
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Générer des onglets automatiquement

Hello Brigitte

Salut Hasco

Pour les commandbutton il existe 2 appellations (ou propriétés ) differentes
1) Name
A la création du bouton une Name de type CommandButtonN est créé
2) Caption
A la création du bouton Caption=Name

Les 2 sont modifiables dans les propriétés
Affichage > Barre d'outils > Boita a outils Controles
click sur equerre
selection du bouton
click sur la 2éme icone (a droite de l'equerre)
Modifier eventuellement Caption et Name
click ensuite sur 3eme icone qui ira dans le module de la feuille avec la macro click toute preparée du type
CommandButtonN_Click
 

Discussions similaires

Statistiques des forums

Discussions
312 193
Messages
2 086 062
Membres
103 110
dernier inscrit
Privé