(VBA) Liste déroulante Combobox

Bonjour à tous,

J'ai actuellement une combobox, dont ma liste est tirée depuis ma colonne (2) de mon tableau "Locataires".

Private Sub UserForm_Initialize()

'******Combobox1 liste déroulante*****'
    Set tbl = Range("Locataires")

    Me.ComboBox1.List = tbl.Columns(2).Value

End Sub
    

J'aimerais savoir si il était possible de ne pas afficher toute ma liste de ma colonne (2).

Exemple :

Si j'ai une date (J/M/A) dans ma colonne (11) alors je n'affiche pas le texte dans ma combobox.

Si j'ai une date (J/M/A) vide dans ma colonne (11) alors j'affiche mon texte dans ma combobox.

Si quelqu'un aurait une solution à m'apporter?

Merci d'avance

Anthotho

Bonjour

Dans ce cas tu dois passer par additem

for i=2 to derniere ligne

if len(range("K"&i).value)=0 then me.combobox1.additem range("B"& i).value

next

A+ François

Bonsoir fanfan38,

Merci pour ta réponse ! Mais étant débutant je n'arrive pas trop a adapter le code...

Voici ce que j'ai fais mais cela ne fonctionne pas.

Private Sub UserForm_Initialize()

Dim DernLigne1 As Long 'Declaration variable pour écrire jusqu'a la dernière ligne
Dim i As Integer 'déclare la variable I (Incrément)

    Set tbl = Range("Locataires")
    Set tbl2 = Range("Tableau8")

    For i = 2 To DernLigne1

If Len(Range("J" & i).Value) = 0 Then Me.ComboBox1.AddItem Range("B" & i).Value
 Me.ComboBox1.List = tbl.Columns(2).Value

Next

End Sub
    

Anthotho

Je me permets de relancer le sujet, car je suis bloqué ..

J'ai plus aucune liste dans ma combobox :

Private Sub UserForm_Initialize()

Dim DernLigne1 As Long 'Déclaration variable pour écrire jusqu'à la dernière ligne
Dim i As Integer 'déclare la variable I (Incrément)

    For i = 2 To DernLigne1

If Len(Range("J" & i).Value) = 0 Then Me.ComboBox1.AddItem Range("B" & i).Value

    Next i

End Sub

Anthotho

Bonjour,

C'est parce que la variable DernLigne1 est vide. La boucle va donc de 2 à 0.

Si la fonction doit aller jusqu'à la dernière ligne de la plage Locataires, c'est : Range("Locataires").Rows.Count

Voici la correction :

    For i = 2 To Range("Locataires").Rows.Count

Bonsoir AntoineDL,

Exact, c'est vrai que je n'avais même pas fait attention..

En tout cas merci pour votre aide !

Rechercher des sujets similaires à "vba liste deroulante combobox"