Combobox | Ne pas afficher les cellules vides
Bonjour tout le monde,
L'un d'entre vous peut-il (elle) m'expliquer comment empêcher ma liste déroulante de prendre les cellules vides ? Le hic c'est que je suis parti d'une plage de cellule que j'ai nommé "listName2" et que j'ai indiqué dans la rowsource de ma comboBox. Au début j'était content, j'obtenais ce que je voulais à savoir : N'afficher que les joueurs qui ressortent de ma recherche effectuée au préalable mais avec du recul, niveau ergonomique ce n'est pas top... La barre de recherche se trouve sur la sheet tools ainsi que le bouton extraction. Vous pouvez faire le test, càd entrer un mot clé sur base de tous les mots présents dans la database, ça vous donnera 1 joueur ou 2 joueurs ou peu importe leur nombre, et une fois que vous cliquez sur le bouton "extract players", ça vous proposera les résultats de votre recherche plus les cellules vides que j'ai choisi arbitrairement en définissant la plage de cellules et c'est ça que je souhaite retirer (les cellules vides).
Voici mon code et fichier :
Sub btnExtraction_Click()
'Déclaration des variables
Dim MyName As Range
Dim listName2 As Range
'Affectation des variables
Set listName2 = Feuil6.Range("B20:B" & Feuil6.Range("B" & Rows.Count).End(xlUp).Row)
'On déplace l'extraction dans la feuille Skills
Worksheets("SKILLS").Select
With Sheets("SKILLS")
'On boucle chaque nom se trouvant dans la liste
Rows(33).EntireRow.Delete
For Each MyName In listName2
'On recherche le nom qui a été sélectionné dans la liste déroulante
If MyName.Value = Me.cbName.Value Then
'Si le nom est trouvé, on va récupérer les compétences du consultants
MyName.Offset(, 28).Resize(1, 27).Copy Destination:=.Cells(.Cells(Rows.Count, 2).End(xlUp).Row + 1, 2)
.Cells(.Cells(Rows.Count, 2).End(xlUp).Row, 1) = Me.cbName.Value
End If
Next MyName
End With
End SubBonjour
Le hic c'est que je suis parti d'une plage de cellule que j'ai nommé "listName2" et que j'ai indiqué dans la rowsource de ma comboBox
Vous devez déjà procéder autrement pour l'ouverture de votre userform
- Supprimez la valeur ROWSOURCE
- Ajoutez ce code dans votre userform.
Private Sub UserForm_Initialize()
cbName.List = Feuil6.ListObjects("Tableau1").ListColumns(1).DataBodyRange.Value
End SubBonjour Eric,
J'ai essayé votre fichier mais je ne vois pas l'output, peut-être une affectation de macro qui n'a pas été mise en place ? Dans votre fichier le résultat est le même que le problème initial à savoir que j'ai la liste avec tous les noms au lieu des noms obtenu en effectuant la recherche.
Mon objectif étant d'arrivé à ce résultat là mais le soucis c'est que la manip que j'ai faite n'est pas très ergonomique, j'ai établi une plage de cellule en partant de "B21" jusqu'à 600 ou 700 (un choix arbitraire) mais du coup, ma liste déroulant propose toutes les cellules vides sélectionnées.
Je vais tenter la méthode de Dan également
PS : désoler pour la réponse tardive