Créa Boutton dynamique fonction Sommaire

rhichame

XLDnaute Nouveau
Je dois faire 4 contrôles sur des plusieurs dizaines de postes (voir centaine(s) parfois) qui se situent à différents niveaux
Pour cela, je sais créer toutes les PV (fiches de contrôle):cool: en automatique avec VBA en fonction du tableau base et des noms de chaque PV (feuilles se rapportant au poste, son niveau et le numéro de contrôle 1-2-3 ou 4)
par contre, afin de naviguer plus facilement dans tous les onglets Excel, je veux pouvoir créer des bouttons dans le feuille Sommaire qui :
- me permettront via un click boutton d'aller directement vers la feuille clickée, avec une MACRO VBA,
- seront nommés automatiquement en fonction des noms de feuille dans le tableau Base et placés dans la feuille Sommaire,
- seront aussi placé en automatique dans le tableau de la feuille Sommaire,
- géré par tranche de 10 sur la feuille Sommaire avec au max 40 postes dans la feuille,

La feuille Sommaire doit me permettre d'avoir une vue d'ensemble de tous mes postes avec les bouttons

Mon besoin est donc le suivant : à partir d'un boutton générer sommaire dans la base

- copier coller le N°de poste et son niveau dans une cadre du sommaire,
- créer et nommer 4 bouttons dans un cadre du sommaire (dans C8, C10, C12, C14) en fonction du N° de poste (voir feuille sommaire)
- créer une macro pour chaque boutton permettant d'aller directement à la feuille dont le nom apparait dessus,
- gérer 10 poste maxi en largeur sur 4 lignes (soit 40 postes),

ensuite,

à partir d'un boutton ajouter poste oublié :
dans une Base qui comporte deja "x" postes, pouvoir ajouter "n" poste et que la macro puisse tenir compte des postes deja existant ==> créer les bouttons comme precedement et les placer la ou il faut dans le sommaire.
En vous remerciant par avance de votre aide
:D
 

Pièces jointes

  • CréaBouttons.zip
    37.8 KB · Affichages: 44

JNP

XLDnaute Barbatruc
Re : Créa Boutton dynamique fonction Sommaire

Bonjour Rhichame :),
Un petit bonjour ne coute rien :mad:...
1) Peux-tu générer ton sommaire à la création des feuilles, ou dois-tu lister les feuilles existantes pour générer le sommaire ?
2) Pourquoi utiliser des boutons, il va falloir que tu génères 2 tonnes de macros, alors que tu pourrais mettre le nom de la feuille dans une cellule, avec événementielle sur double-clic pour pouvoir aller sur la feuille choisie, ceci avec une seule macro ? Sans compter que tu pourrais les remplir par simple égalité avec ta feuille
3) Pour l'ajout de postes oubliés, il te suffit de rajouter une colonne "Créé" pour ne générer que les lignes qui n'ont pas déjà été traitées.
4) La formule en G3 serait plus efficace en
Code:
=SI($C3<>"";CONCATENER($C3;"_";$D3;"_";G$2);"")
car elle ne limiterait pas le nombre de postes.
A + :cool:
 

rhichame

XLDnaute Nouveau
Re : Créa Boutton dynamique fonction Sommaire

Bonsoir,
(Mille excuzes pour cet oubli, cause la tete ds le guidons avec ces fiches qui m'obsede sans pouvoir trouver de reponse moi-même, c'est frustrant :()

1) Je crée les feuilles à partir de l'onglet "Base"
Le sommaire peux aussi être créé à partir de l'onglet Base; je n'ai pas de contrainte de ce coté
2) Je n'ai jamais utilisé l'evenementielle dble-click. S'il cela me permet d'aller directement vers la feuille nommée via ce dble-click à partir de l'onglet "Sommaire", ca me va tous à fait
Par contre je tiens juste à ce que le "Sommaire" reste comme il est du point de vue mise en page (Nbre lignes & Colonnes)
3) Bonne astuce
4) effectivement, j'utilise une macro pour faire le concaténer. ta solution permet d'eviter cela.

tes idées me semble bonnes, puis-je te demander un ptit coup de main bien veillant :p
en te remerciant par avance
 

JNP

XLDnaute Barbatruc
Re : Créa Boutton dynamique fonction Sommaire

Re :),
Tes excuses sont acceptées, mais si tu attends des réponses, mieux vaut te conformer à la charte ;).
En pièce jointe, je t'ai géré les 20 premiers postes.
Mode d'emploi pour continuer :
1) J'ai utilisé des $ pour bloquer les cellules, ainsi les postes sont récupérés en =Base!$C$3 et les Checks en =SI(Base!$G$3<>0;Base!$G$3;""). Comme cela, par simple Copier/Coller, tu peux remplir les postes suivant, puis, en sélectionnant poste par poste, faire un Rechercher/Remplacer et, en acceptant "Regarder dans les formules", il suffit de remplacer "3" par le n° de la ligne qui t'intérresse.
2) Pour que l'affichage soit sympa, j'ai utilisé des MFC. Par contre, comme je suis en 2007, ma gamme de bleu n'est pas exactement la même que la tienne, donc il faut modifier le bleu du caractère afin que "Poste " et "Niveau ", que j'ai mis en format personnalisé, ne se voient plus quand il ne sont pas renseignés. De même, les "faux boutons" n'apparaissent que s'ils sont renseignés.
3) J'ai mis une petite événementielle dans la feuille "Sommaire"
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Target.Value Like "*Check*" Then Exit Sub
On Error Resume Next
Sheets(Target.Value).Select
Cancel = True
On Error GoTo 0
End Sub
En gros, en cas de double-click, si il n'y a pas "Check" dans la cellule, je laisse tomber, sinon, je sélectionne la feuille indiquée. J'ai encadré par une gestion d'erreur, pour que si la feuille n'existe pas (on ne sait jamais...), la macro se contente de quitter. Le Cancel = True permet de ne pas rentrer dans la cellule.
Je pense que comme "petit coup de main bienveillant", c'est déjà pas mal :p...
Bonne journée :cool:
 

Pièces jointes

  • CréaBouttons.xls
    112 KB · Affichages: 83

rhichame

XLDnaute Nouveau
Re : Créa Boutton dynamique fonction Sommaire

Bonjour JNP, promis, je lirai la charte
Je m'incline, chapeau bas
Ta solution est impec... ca fonction super bien et pour preuve, voir le fichier joint la petite centaine de poste que j'ai préparé.
Par contre j'ai un soucis quand je génère mes fiches de contrôle
une message à la noix arrive entre les copies & toutes les 4 feuilles copiées!!
"Une feuille ou une formule que vous voulez deplacer contient le nom "conformité" qui existe deja ... blablabla"
aurais tu par le plus grand des hasard, une idée d'ou cela viens
car je ne me vois pas cliker "oui" pour par exemple pour une centaine de fiches à faire !!!
merci de ton aide o combien précieuse, @+
PS : je suis aussi accro à rhichame La Brute
 

Pièces jointes

  • sommaire auto Vjnp.zip
    48.5 KB · Affichages: 64
Dernière édition:

rhichame

XLDnaute Nouveau
Re : Créa Boutton dynamique fonction Sommaire

Bonjour à tous,
Est ce que quelq'au saurait comment faire pour que la couleur d'une cellule suive la meme couleur que le nom de l'onglet que la cellule porte ?
Voir le l'omglet sommaire dans le fichier joint ci dessus
d'avance merci
 

JNP

XLDnaute Barbatruc
Re : Créa Boutton dynamique fonction Sommaire

Re :),
"Une feuille ou une formule que vous voulez deplacer contient le nom "conformité" qui existe deja ... blablabla"
Comme le message l'indique, tu as une zone nommée dans la feuille qui te sert de modèle, or tu ne peux pas avoir plusieurs zone nommées du même nom dans le même classeur, donc il faut supprimer cette zone nommée...
De même que dans ton fichier, la concaténation, contrairement au fichier de base, donne des noms identiques vu que tu n'intègres plus le post avant le check. Donc plantage si 2 noms d'onglet identiques.
Enfin, pour ta couleur d'onglet, que souhaites-tu ? Passer la couleur de la cellule de la même couleur que l'onglet quand tu changes celle de l'onglet ? Pas sûr qu'une événementielle puisse réagir à des considérations esthétiques...
A + :cool:
 

rhichame

XLDnaute Nouveau
Re : Créa Boutton dynamique fonction Sommaire

Bonsoir JNP,
Pour mon erreur sur les poste, merci je ne m'en atait pas rendu compte avec la tête ds le guidons...
pour la couleur de la cellule, je souhaite juste via un bouton verifier les onglets sont Vert ou rouge et porter la meme couleur à la cellule qui porte le même nom que la feuille
je sais deja changer le couleur des onglets en fonction de la conformité ou non de mes fiche check
d'avance merci
à+
 

JNP

XLDnaute Barbatruc
Re : Créa Boutton dynamique fonction Sommaire

Re :),
En t'inspirant de ça
Code:
Sub test()
If Selection.Value <> "" Then
Selection.Interior.Color = Sheets(Selection.Value).Tab.Color
End If
End Sub
tu devrais y arriver.
Bonne soirée :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 325
Membres
102 862
dernier inscrit
Emma35400