Bonjour,
est-il possible de lister l"ensemble des combobox d'un classeur et de créer une liste des noms dans une colonne excel ?
J'arrive bien à le faire avec des noms de cellules mais pas avec des Combobox.
Merci d'avance
Bonjour,
est-il possible de lister l"ensemble des combobox d'un classeur et de créer une liste des noms dans une colonne excel ?
J'arrive bien à le faire avec des noms de cellules mais pas avec des Combobox.
Merci d'avance
Dans un userform, ça donne ça
Dans une feuille de calculs, tous les contrôles sont des "Shape", TypeName ne permet pas de les distinguer. S'il existe une autre méthode, je ne la connais pas. Par contre, si tu connais leurs noms, tu pourrais les retrouver.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 For Each Controle In Me.Controls If TypeName(Controle) = "ComboBox" Then MsgBox Controle.Name Next
Tu dis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 For Each Lobjet In Worksheets("Feuil1").Shapes MsgBox Lobjet.Name Next
A+
bonsoir windsor, bonsoir ousel'n'or
une autre proposition
@+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub ListerCombos() Dim tabloCombo As Variant tabloCombo = Array("") With ActiveSheet For Each obj In .OLEObjects If obj.progID Like "Forms.ComboBox.1" Then ReDim Preserve tabloCombo(UBound(tabloCombo) + 1) tabloCombo(UBound(tabloCombo)) = obj.Name End If Next End With Sheets.Add Range(Cells(1, 1), Cells(1 + UBound(tabloCombo), 1)).Value = Application.Transpose(tabloCombo) End Sub
fred65200
Bonsoir,
en fait, je cherchais quelque chose autour de ce type de code :
Il y a de l'idée, mais malheureusement, VBA, considère comme des OLEobjects uniquement les boutons mais pas les Combobox, pourquoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 For HubyLigne01 = 1 To Worksheets("Nappes").OLEObjects.Count 'Ajout des Noms de Combobox manquants sur Feuille Erreurs If Worksheets(HubyFeuille01).Range(HubyCellule01).Offset(HubyLigne01, 0).Value <> Worksheets("Nappes").OLEObjects(HubyLigne01).Name Then Call Selection_Derniere_Cellule_Vide("Erreurs", "B65536") Selection.Value = Worksheets("Nappes").OLEObjects(HubyLigne01).Name End If Next HubyLigne01
Quelqu'un le saurait-il ?
Merci d'avance
Windsor
Bonsoir,
finalement, après quelques vérifications et racourcissement de certains noms de combo, mon code précédent fonctionne parfaitement.
Merci à ce qui ont bien voulu me permettre d'avancer
Windsor
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager