Inséré du code dans des boutons qui apparaissent...

nicolase78

XLDnaute Junior
Salut tout le monde,

Je suis en train de développer un programme et je suis bloqué.

J'ai donc retranscrit un exemple qui m'aiderait à continuer mon programme.

Parmi une plage de données, si une case est remplie alors un bouton apparaît en face de cette case. Ce bouton qui apparaît "devra contenir du code à l'intérieur" pour lancer une autre macro...

J'ai donc donné le fichier exemple avec une plage qui contient des données et un bouton "apparaitre bouton" qui cliqué me fait apparaître deux boutons qui devront contenir des macros à l'intérieur, j'ai choisi pour l'exemple que la case en face soit en gras.

C'est pas évident à expliquer j'espère avoir été claire ! Je vous donne le classeur excel.

Merci par avance.
 

Pièces jointes

  • Exemple.xls
    38.5 KB · Affichages: 78
  • Exemple.xls
    38.5 KB · Affichages: 91
  • Exemple.xls
    38.5 KB · Affichages: 83
Dernière édition:

mécano41

XLDnaute Accro
Re : Inséré du code dans des boutons qui apparaissent...

Bonjour,

Je ne connais pas tes contraintes, mais tu n'es pas obligé de recréer les boutons à chaque fois ; il suffit de les rendre visibles ou non.

(voir exemple code dans feuil1 et dans thisWorkbook)

L'apparition/disparition peut bien sûr être produite par du code au lieu de boutons.

Cordialement
 

Pièces jointes

  • Exemple boutons1.xls
    64 KB · Affichages: 95

nicolase78

XLDnaute Junior
Re : Inséré du code dans des boutons qui apparaissent...

C'est vrai que j'avais pas pensé à cette solution. Le soucis c'est que la plage testé fait 30 lignes environ, donc ça fait pas mal de boutons dans lequel je dois insérer le code qui sera assez long. Mais c'est faisable. Si personne à la soluce (ou si on peut pas le faire tout simplement), je ferai comme t'as dit. Merci Mécano.
 

nicolase78

XLDnaute Junior
Re : Inséré du code dans des boutons qui apparaissent...

En fait il y a quelque chose que j'avais pas vu dans la version que tu m'as donné il y a deux boutons qui apparaissent dans tous les cas.
Dans l'exemple que j'avais fait les boutons se créent si une il y a quelque chose dans la plage en jaune, si 3 cases étaient remplis dans la plage jaune, 3 boutons seraient apparu.

Mettons que j'ai appelé "bouton2" le bouton qui apparaît à gauche en B2 si C2 est remplie, bouton3 si C3 est remplie etc...

Comment je peux faire pour les appeler parce que j'ai essayé un truc du genre (mais comme je m'y attendais ça marche pas):

if C2 <> "" then = bouton & numerobouton.visible = True

?
 

mécano41

XLDnaute Accro
Re : Inséré du code dans des boutons qui apparaissent...

Cela ne m'apparaît pas très clair... Tu veux :

- avoir une trentaine de cellules par exemple
- avoir ou non quelque chose dans certaines de ces cellules
- si une cellule contient quelque chose, tu veux qu'un bouton apparaisse devant cette cellule
- en cliquant sur ce bouton, il faut lancer une autre partie de code. Ce ne serait donc pas des boutons "bascule" (Toggle) mais des boutons normaux?

Est-ce bien cela?

- le contenu de la cellule doit-il se mettre en GRAS ou non?
- le bouton "Apparaitre bouton" n'était qu'un exemple? L'apparition ou la disparition d'un bouton n'est liée qu'à la présence ou l'absence de donnée dans la cellule...

Peux-tu confirmer ou infirmer.

Cordialement
 

nicolase78

XLDnaute Junior
Re : Inséré du code dans des boutons qui apparaissent...

Merci de ton aide Mécano, désolé si je suis pas claire.

Voila la plage fera une trentaine de cellules (ça dépend de ce qui passe avant dans mon programme).
Si il y a quelque chose dans la cellule
Un bouton apparaît devant cette cellule
En cliquant dessus on lance macro, qui entre autre mettra la cellule en face en gras mais qui aura un autre rôle mais après je devrais me débrouiller.

J'ai pas bien compris ce que tu voulais dire avec le bouton n'était qu'un exemple mais en fait, le bouton effectivement n'apparaitra pas dans mon programme mais je dois lancer une macro qui permettra d'obtenir le résultat que doit faire le bouton. Quand je lance la macro il se passe ce qui est décrit sur le paragraphe d'au-dessus.

J'espère avoir été claire, c'est pas facile ! mais en tout cas merci parce que c'est vrai que mon problème est long à comprendre.
 

mécano41

XLDnaute Accro
Re : Inséré du code dans des boutons qui apparaissent...

Bonjour,

Voici quelque chose qui fonctionne comme il me semble que tu le souhaites. On doit pouvoir faire d'autres choses (USF avec boutons comportant directement les noms de routines à lancer...) mais il faut savoir si le nombre d'éléments ( que tu évalues actuellement à environ 30) variera, et comment il variera (manuellement ou par programme en fonction du résultat de quelque chose...)

EDIT : Attention! cela ne fonctionne que si le contenu de la cellule jaune est modifié manuellement ; pas par calcul ou code

Cordialement
 

Pièces jointes

  • Exemple boutons2.xls
    55 KB · Affichages: 109
Dernière édition:

mécano41

XLDnaute Accro
Re : Inséré du code dans des boutons qui apparaissent...

Bonsoir,

Une version avec un USF et un code plus court avec un module de classe. Il n'y a plus que les procédures à lancer qui comportent chacune leur code.

Cordialement
 

Pièces jointes

  • Exemple boutons3.zip
    22.5 KB · Affichages: 37

mécano41

XLDnaute Accro
Re : Inséré du code dans des boutons qui apparaissent...

Bonjour,

... et si tu préfères avoir une liste avec des trous en feuille 1, il suffit de remplacer :

Code:
Set PlageProc = Sheets(1).Range(Range("NmProc").Offset(1, 0), Range("NmProc").End(xlDown))

par

Code:
Set PlageProc = Sheets(1).Range(Range("NmProc").Offset(1, 0), Range("NmProc").Offset(Columns(Range("NmProc").Column).Rows.Count - Range("NmProc").Row, 0).End(xlUp))

dans le code du module1

Cordialement
 

Statistiques des forums

Discussions
311 730
Messages
2 081 978
Membres
101 854
dernier inscrit
micmag26