Macros création de boutons selon valeurs filtrables... l'espoir fait vivre !

djodjodjo

XLDnaute Occasionnel
Bonjour à tous :)

Aujourd'hui I have a dream that one day... qu'un jour une macro puisse réaliser miraculeusement (ou pas) ceci :

1) Récupérer la liste des valeurs uniques dans une colonne (récupérer la liste des valeurs du filtre?)
2) Créer des boutons portant le nom de chaque valeur unique récupérée
3) Aligner les boutons les uns après les autres
4) Affecter une macro (qui aura le nom de la valeur récupérée) à chaque bouton

... mais peut-être que je rêve un peu trop...

Je vous ai mis un beau petit exemple avec de jolis boutons de ma création (pas sûr qu'ils soient faisables par macro...)

Bien sûr j'adapterai le code en fonction de mes besoins, et même si vous n'avez envie de vous intéresser qu'à une seule étape ça m'aiderait déjà énormément! Même les petits bouts de pistes seront appréciés !

Par avance, merci :)
 

Pièces jointes

  • Création de boutons.xlsx
    11.9 KB · Affichages: 53
Dernière édition:

djodjodjo

XLDnaute Occasionnel
Re : Macros création de boutons selon valeurs filtrables... l'espoir fait vivre !

Oui.. enfin je suis un débutant en VBA ! Mais oui j'aurais pu/dû y penser :)

Ta solution semble meilleure, au moins en termes de lisibilité / propreté.. après je sais pas

Merci
 

djodjodjo

XLDnaute Occasionnel
Re : Macros création de boutons selon valeurs filtrables... l'espoir fait vivre !

Bonsoir JB,

Très intéressant ! Je ne sais plus quoi choisir... ComboBox ou Boutons.. telle est la question !

Je vais méditer là-dessus, vous êtes au top les gars !

Bonne soirée :)
 

djodjodjo

XLDnaute Occasionnel
Re : Macros création de boutons selon valeurs filtrables... l'espoir fait vivre !

Bonjour à tous,

j'aimerais modifier le code suivant (celui de JB proposé par JNP) :

Code:
Private Sub UserForm_Initialize()
'Dico par JB
Set f = Sheets("AIFN")
Set MonDico = CreateObject("Scripting.Dictionary")
With CreateObject("vbscript.regexp")
For Each c In f.Range("H42:H" & f.[H65000].End(xlUp).Row)
    .Global = False
    .Pattern = "[A-Za-zéèëê]+[- ]?[A-Za-zéèëê]+"
    If .Test(c.Value) Then MonDico(c.Value) = ""
Next c
End With
temp = MonDico.keys
Call tri(temp, LBound(temp), UBound(temp))
Me.ComboBox1.List = temp
ComboBox1.AddItem "Autre"
End Sub

pour qu'il crée la liste non pas de toutes les valeurs uniques de la colonne H mais uniquement les valeurs uniques visibles dans la colonne H (un filtre a été appliqué et seules les valeurs restantes doivent apparaitre dans la liste).

Par avance, merci !
 

JNP

XLDnaute Barbatruc
Re : Macros création de boutons selon valeurs filtrables... l'espoir fait vivre !

Re :),
Tu as de la chance, tu as eu JB himself :p...
Code:
If .Test(c.Value) And c.EntireRow.Hidden = False Then MonDico(c.Value) = ""
devrait fonctionner :rolleyes: !
Bonne suite :cool:
 

djodjodjo

XLDnaute Occasionnel
Re : Macros création de boutons selon valeurs filtrables... l'espoir fait vivre !

Bonjour à tous :),

ce message est adressé à tous et en particulier à JNP ou toute autre personne qui pourra m'aider !

J'utilise le Pattern suivant : .Pattern = "[A-Za-z1-9éèëê]+"
mais j'aimerais qu'il autorise aussi les "vides" : quand il n'y a pas de caractère du tout.. je ne vois pas du tout comment faire :| pourtant j'ai bien lu ton tuto JNP ^^

Peut-être un Pattern "par exclusion" qui autorise tout sauf les "0" (j'ai bien mis 1-9 dans le Pattern :))

Merci d'avance !

Edit: Solution trouvée: J'ai viré le Pattern et j'ai modifié la ligne suivante:

If .Test(c.Value) And c.EntireRow.Hidden = False And c.Value <> 0 Then MonDico(c.Value) = ""
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Macros création de boutons selon valeurs filtrables... l'espoir fait vivre !

Re :),
Peut-être un Pattern "par exclusion" qui autorise tout sauf les "0" (j'ai bien mis 1-9 dans le Pattern :))
Le pattern par exclusion, c'est [^0], mais techniquement, il ne faut pas oublier qu'un Pattern est un motif de texte, pas une valeur numérique, et je ne vois pas trop ce que tu veux faire des cellules vides :confused:...
M'enfin, si ça marche :D
 

djodjodjo

XLDnaute Occasionnel
Re : Macros création de boutons selon valeurs filtrables... l'espoir fait vivre !

Les cellules vides correspondent à des projets sans statut (certains sont "en cours", d'autres "terminés" etc.. et certains n'ont pas d'info donc ca génère des cellules vides...). Mes graphiques doivent prendre en compte tous les projets par statut, y compris les projets sans statut :)
 

Statistiques des forums

Discussions
312 864
Messages
2 093 002
Membres
105 592
dernier inscrit
MSteeven