Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

meldja

XLDnaute Impliqué
Re,
Ce sujet est beaucoup traité, mais je ne m'y retrouve pas.
Je voudrais simplement une ComboBox dans un UserForm qui prennent la valeur des cellules comprenant une donnée dans une plage de cellule.
Pour l'instant, j'ai ce code :

Private Sub UserForm_Initialize()
Dim i As Integer
For i = 3 To 7
ComboBox1.AddItem Sheets("groupe").Cells(i, 1)
Next
ComboBox1 = Range("C3").Value
End Sub

Code qui correspond à la première colonne et jusqu'à la ligne que je dois lui indiquer.
Une boucle qui trouverait les cellules qui contiennent du text me serait utile, de façon à éviter les cellules vides.

Mercie d'avance
 
Re : ComboBox VBA

Bonsoir,

si tout compris

essaie :

Code:
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 3 To 7
If Cells(i, 1).Value <> "" Then ComboBox1.AddItem Sheets("groupe").Cells(i, 1)
Next
'ComboBox1 = Range("C3").Value
End Sub

Par contre, je ne comprends pas la dernière ligne de code, tu demandes au Combobox de prendre la valeur de C3, et tu charges les valeurs de la colonne A?
 
Re : ComboBox VBA

Bonsoir meldja, bhbh,

Moi j'ai plus ou moins compris que tu voulais limiter aux cellules contenant du texte. Dans ce cas tu peux essayer:
Code:
Private Sub UserForm_Initialize()
Dim i As Long 'pour ne pas être limité à 32000 lignes
Dim C As Range

    For i = 3 To 7
        Set C = Sheets("groupe").Cells(i, 1)
        If Application.IsText(C) Then ComboBox1.AddItem C
    Next
    ComboBox1 = Range("C3").Value
End Sub
Je n'ai pas compris non plus la dernière ligne de code. Et pas compris non plus si tu veux que la macro repère le nombre de lignes à traiter...

à suivre...

EDIT : Salut Didier, ça me fait plaisir de te croiser sur un fil, ça n'était pas arrivé depuis longtemps 🙂
 
Dernière édition:
Re : ComboBox VBA

Bonsoir meldja, le Forum,

Deux façons de faire peut-être :

1/ En faisant un simple test du contenu de la cellule avant de l'ajouter à la ComboBox :
Code:
[COLOR=GRAY][B][I]DANS LE MODULE DE CODE DU USERFORM[/I][/B][/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] UserForm_Initialize()
[COLOR=NAVY]Dim[/COLOR] i [COLOR=NAVY]As Integer
    For[/COLOR] i = 3 [COLOR=NAVY]To[/COLOR] 7
        [COLOR=NAVY]With[/COLOR] Sheets("groupe").Cells(i, 1)
            [COLOR=NAVY]If[/COLOR] .Value <> "" [COLOR=NAVY]Then[/COLOR]
                ComboBox1.AddItem .Text
            [COLOR=NAVY]End If
        End With
    Next[/COLOR] i
    ComboBox1 = Range("C3").Value
[COLOR=NAVY]End Sub[/COLOR]
2/ En bouclant uniquement sur les cellules non vides dans la colonne :
Code:
[COLOR=GRAY][B][I]DANS LE MODULE DE CODE DU USERFORM[/I][/B][/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] UserForm_Initialize()
[COLOR=NAVY]Dim[/COLOR] R [COLOR=NAVY]As[/COLOR] Range
    [COLOR=NAVY]For Each[/COLOR] R [COLOR=NAVY]In[/COLOR] Sheets("groupe").Columns(1).SpecialCells(xlCellTypeConstants, 23)
        ComboBox1.AddItem R.Text
    [COLOR=NAVY]Next[/COLOR] R
    ComboBox1 = Range("C3").Value
[COLOR=NAVY]End Sub[/COLOR]
Cordialement,

EDITION :
Arf... Pardon bhbh et Luki, je en vous avais pas vu arriver...
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
333
Réponses
2
Affichages
772
Réponses
7
Affichages
988
F
Réponses
4
Affichages
818
Réponses
11
Affichages
2 K
E
Réponses
6
Affichages
2 K
exe76
E
Retour