Remplir combobox selon conditon
Résolu/Fermé
New_VBA_User
Messages postés
82
Date d'inscription
mardi 27 août 2019
Statut
Membre
Dernière intervention
3 octobre 2019
-
Modifié le 2 oct. 2019 à 16:47
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019 - 3 oct. 2019 à 13:35
New_VBA_User Messages postés 82 Date d'inscription mardi 27 août 2019 Statut Membre Dernière intervention 3 octobre 2019 - 3 oct. 2019 à 13:35
3 réponses
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
Modifié le 2 oct. 2019 à 17:22
Modifié le 2 oct. 2019 à 17:22
bonjour cela plante sur quelle ligne avec quel message d'erreur?
moi j'utiliserais une logique différente: chercher toutes les cellules de la colonne F contenant Me.TextBox_TextN°, et les utiliser directement.
remplace Mee par Me
moi j'utiliserais une logique différente: chercher toutes les cellules de la colonne F contenant Me.TextBox_TextN°, et les utiliser directement.
Dim bottefoin As Range, Cell As Range, premier As String
'Dim Mee
Set bottefoin = ThisWorkbook.Sheets("Feuil1").Columns("F")
Set Cell = bottefoin.Find(Mee.TextBox_TextN°.Value)
Mee.ComboBox_Find_SiteTag.Clear
If Not Cell Is Nothing Then
premier = Cell.Address
Do
If Cell.Offset(0, 1) <> "" Then ' Regarde la valeur de cellule de droite
If Mee.ComboBox_Find_SiteTag.ListIndex = -1 Then Mee.ComboBox_Find_SiteTag.AddItem Cell.Offset(0, 1)
Else
If Mee.ComboBox_Find_SiteTag.ListIndex = -1 Then Mee.ComboBox_Find_SiteTag.AddItem Cell.Offset(-1, 1)
End If
Set Cell = bottefoin.FindNext(Cell)
Loop While premier <> Cell.Address
End If
remplace Mee par Me
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
2 oct. 2019 à 18:59
2 oct. 2019 à 18:59
c'est la ligne 28 qui devrait être:
le premier offset est inutile, le second nuisible.
Set SearchRange = .Range(Selection , Selection.End(xlDown))
le premier offset est inutile, le second nuisible.
New_VBA_User
Messages postés
82
Date d'inscription
mardi 27 août 2019
Statut
Membre
Dernière intervention
3 octobre 2019
3 oct. 2019 à 09:33
3 oct. 2019 à 09:33
Merci, c'est top.
New_VBA_User
Messages postés
82
Date d'inscription
mardi 27 août 2019
Statut
Membre
Dernière intervention
3 octobre 2019
3 oct. 2019 à 11:03
3 oct. 2019 à 11:03
Déolé de te déranger, j'ai encore une petite questions,
voilà, maintenant que j'ai rempli le combobox, , j'ai par exemple 2 autres textbox qui me permet d'afficher les valeurs de colonne H et I, selon la valeur sélectionné de Combobox.
par exemple si on sélectionne la valeur 4 de combobox , je veux qu'on affiche les info de cette ligne qui sont dans les colonne H et I dans les Textbox. (descrip 4 et Type 4)
voir photo ci-dessous.

voilà, maintenant que j'ai rempli le combobox, , j'ai par exemple 2 autres textbox qui me permet d'afficher les valeurs de colonne H et I, selon la valeur sélectionné de Combobox.
par exemple si on sélectionne la valeur 4 de combobox , je veux qu'on affiche les info de cette ligne qui sont dans les colonne H et I dans les Textbox. (descrip 4 et Type 4)
voir photo ci-dessous.
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
>
New_VBA_User
Messages postés
82
Date d'inscription
mardi 27 août 2019
Statut
Membre
Dernière intervention
3 octobre 2019
3 oct. 2019 à 12:20
3 oct. 2019 à 12:20
je ferais donc la même logique de recherche en colonne F.
ensuite, pour chaque ligne utile de la colonne F, vérifier la valeur de la colonne G, et récupérer les valeurs de H et I sur la bonne ligne.
ensuite, pour chaque ligne utile de la colonne F, vérifier la valeur de la colonne G, et récupérer les valeurs de H et I sur la bonne ligne.
New_VBA_User
Messages postés
82
Date d'inscription
mardi 27 août 2019
Statut
Membre
Dernière intervention
3 octobre 2019
>
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
3 oct. 2019 à 13:35
3 oct. 2019 à 13:35
ok, c'est- ce que j'ai fait.
Merci.
Merci.
New_VBA_User
Messages postés
82
Date d'inscription
mardi 27 août 2019
Statut
Membre
Dernière intervention
3 octobre 2019
3 oct. 2019 à 09:33
3 oct. 2019 à 09:33
Bonjour,
Vos 2 solutions marchent bien.
Merci. :)
Bonne journée.
Vos 2 solutions marchent bien.
Merci. :)
Bonne journée.
Modifié le 2 oct. 2019 à 17:09
quand je fais pas à pas, et je sélection les valeur de 4244 dernière dans la colonne F, il plante, et je pense qu'il va jusqu'à la dernière ligne vide alors il devrait s'arrêter juste après 2 ligne de 4244.
Ton idée peut être intéressant: Peux-tu faire un exemple concernant ta proposition..
Merci d'avance.
2 oct. 2019 à 17:28
entre-temps, j'ai ajouté un exemple en #1.
2 oct. 2019 à 18:23
. ou changer ta logique
Une autre facon de voir:
Private Sub TextBox_TextN?_Change() If TextBox_TextN? = "" Then Exit Sub With ThisWorkbook.Sheets("Feuil1") Nb = Application.CountIf(.Columns("F"), CLng(TextBox_TextN?.Value)) If Nb > 0 Then lig = 1 For n = 1 To Nb lig = .Columns("F").Find(CLng(TextBox_TextN?.Value), .Cells(lig, "F"), , xlWhole).Row If .Cells(lig, "F").Offset(0, 1) <> "" Then ' Regarde la valeur de cellule de droite If ComboBox_Find_SiteTag.ListIndex = -1 Then Me.ComboBox_Find_SiteTag.AddItem .Cells(lig, "F").Offset(0, 1) Else If ComboBox_Find_SiteTag.ListIndex = -1 Then Me.ComboBox_Find_SiteTag.AddItem .Cells(lig, "F").Offset(-1, 1) End If Next n Else ComboBox_Find_SiteTag.Clear End If End With End SubPas de recherche inutile et en effet c'est la End(xlDown qui pose soucis.
2 oct. 2019 à 19:02
3 oct. 2019 à 06:44
données sont bien organisées
Non, aucune importance, car recherche dans la colonne les lignes quelque soit leur position.
La boucle permet de limiter au nombre de fois le texte contenu dans la colonne