Microsoft 365 Remlir combobox selon conditon.

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 !

New_VBA_User

XLDnaute Nouveau
voir la Photo ci-dessous:

Je veux remplir un combobox avec les valeur qui se trouve dans la colonne G selon les valeurs qui se trouve dans la colonne F.

par exemple: pour tous les no qui se trouve dans la colonne F: Test N° "3005", le combobox doit être rempli de valeur de Tag "1,2,3,4" et pour "3062" de "xx, y", et "4244" de "test1, test2"

et aussi le nombre de Test N° dans la colonne F peut augmenter, dans ce cas le combobox doit s'adapter.

la sélection de Test N° se fait via un textbox.

lorsque je selectionne le dernier Test N° ex: 4244, ça plante, je pense que c'est la End(xlDown qui pose soucis.
Merci de votre aide.

voici le code utilisé:

Code:
Private Sub TextBox_TextN°_Change()

Dim Noms As Range

With ThisWorkbook.Sheets("Feuil1")
    .Select
    Set Noms = .Columns("F").Find(what:=Me.TextBox_TextN°.Value)
    If Not Noms Is Nothing Then
        Noms.Offset(0, 0).Select ' Select the active line
        
        Fill_Tag
    End If

End With
End Sub

Private Sub Fill_Tag()

Dim SearchRange As Range
Dim Cell As Range

Me.ComboBox_Find_SiteTag.Clear  ' vide le combobox

With ThisWorkbook.Sheets("Feuil1")

    Do While ActiveCell.Value <> Empty
        Set SearchRange = .Range(Selection.Offset(0, 0), Selection.Offset(1, 0).End(xlDown))  ' recherche la valeur dans la cellule
                        
        For Each Cell In SearchRange
            If Cell.Offset(0, 1) <> "" Then     ' Regarde la valeur de cellule de droite
                If Me.ComboBox_Find_SiteTag.ListIndex = -1 Then Me.ComboBox_Find_SiteTag.AddItem Cell.Offset(0, 1)
            Else
                If Me.ComboBox_Find_SiteTag.ListIndex = -1 Then Me.ComboBox_Find_SiteTag.AddItem Cell.Offset(-1, 1)
            End If
            
        Next Cell
    Exit Do
    Loop
End With
End Sub

VB:
End(xlDown
 

Pièces jointes

voir la Photo ci-dessous:

Je veux remplir un combobox avec les valeur qui se trouve dans la colonne G selon les valeurs qui se trouve dans la col F.
Bonjour,
Ceci devrait être suffisant
VB:
Private Sub TextBox_TextN°_AfterUpdate()
    Dim C As Range
    ComboBox_Find_SiteTag.Clear
    If Not IsNumeric(TextBox_TextN°) Then Exit Sub
    With ThisWorkbook.Sheets("Feuil1")
        For Each C In .Range("f2:f" & .Cells(.Rows.Count, "F").End(xlUp).Row)
            If C.Value = CLng(TextBox_TextN°) And C.Offset(, 1) <> "" Then ComboBox_Find_SiteTag.AddItem C.Offset(, 1)
        Next
    End With
End Sub
 

Pièces jointes

Dernière édition:
Bonjour,
Ceci devrait être suffisant
VB:
Private Sub TextBox_TextN°_AfterUpdate()
    Dim C As Range
    ComboBox_Find_SiteTag.Clear
    If Not IsNumeric(TextBox_TextN°) Then Exit Sub
    With ThisWorkbook.Sheets("Feuil1")
        For Each C In .Range("f2:f" & .Cells(.Rows.Count, "F").End(xlUp).Row)
            If C.Value = CLng(TextBox_TextN°) And C.Offset(, 1) <> "" Then ComboBox_Find_SiteTag.AddItem C.Offset(, 1)
        Next
    End With
End Sub


Bonjour,

C'est parfait. cool

Merci

Bonne journée.
 
Bonjour,
Ceci devrait être suffisant
VB:
Private Sub TextBox_TextN°_AfterUpdate()
    Dim C As Range
    ComboBox_Find_SiteTag.Clear
    If Not IsNumeric(TextBox_TextN°) Then Exit Sub
    With ThisWorkbook.Sheets("Feuil1")
        For Each C In .Range("f2:f" & .Cells(.Rows.Count, "F").End(xlUp).Row)
            If C.Value = CLng(TextBox_TextN°) And C.Offset(, 1) <> "" Then ComboBox_Find_SiteTag.AddItem C.Offset(, 1)
        Next
    End With
End Sub


déolé de te déranger, j'ai encore une petite questions,

voilà, maintenant on a rempli notre combobox, maintenant, 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éelectionnle 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.

Merci.
 

Pièces jointes

  • Combobox_fill.PNG
    Combobox_fill.PNG
    22.1 KB · Affichages: 13
déolé de te déranger, j'ai encore une petite questions,

voilà, maintenant on a rempli notre combobox, maintenant, 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éelectionnle 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.

Merci.
Re..
Plutôt qu'une photo met le classeur avec l'userform
 
Re..
A tester

ça marche bien. .
peux-tu m'expliquer la ligne ci-dessous stp. pourquoi *1 ?

j'ai encore une questions, le problème c'est qu'on dans Tag N° le nom identique, par exemple 2x 4 ou autre nom, lorsque je choisie le 4 dans la liste au deuxième position j'ai le résultat de la 1ère ligne qui est affiché au lieu de la 2ème ligne, comment faire quand on a des doublons dans Tag N°, il faut arriver a afficher la bonne ligne. voir image

Merci d'aide.

VB:
lig = Application.Match(ComboBox_Find_SiteTag * 1, .[g:g], 0)
 

Pièces jointes

  • Combobox_doublons.PNG
    Combobox_doublons.PNG
    21.8 KB · Affichages: 7
Dernière édition:
ça marche bien. .
peux-tu m'expliquer la ligne ci-dessous stp. pourquoi *1 ?

j'ai encore une questions, le problème c'est qu'on dans Tag N° le nom identique, par exemple 2x 4 ou autre nom, lorsque je choisie le 4 dans la liste au deuxième position j'ai le résultat de la 1ère ligne qui est affiché au lieu de la 2ème ligne, comment faire quand on a des doublons dans Tag N°, il faut arriver a afficher la bonne ligne. voir image

Merci d'aide.

VB:
lig = Application.Match(ComboBox_Find_SiteTag * 1, .[g:g], 0)
RE..
Cette formule sert à rendre numérique la sélection choisie dans ComboBox_Find_SiteTag
S'il y a des "test number" identiques avec les mêmes "TagN°", il faudra que le contrôle se fasse à la saisie du tableau pour ne pas rencontrer ce problème.
S'il y a des "test number" différents avec les mêmes "TagN° la pj le fait
 

Pièces jointes

RE..
Cette formule sert à rendre numérique la sélection choisie dans ComboBox_Find_SiteTag
S'il y a des "test number" identiques avec les mêmes "TagN°", il faudra que le contrôle se fasse à la saisie du tableau pour ne pas rencontrer ce problème.
S'il y a des "test number" différents avec les mêmes "TagN° la pj le fait

Ok, merci beaucoup.

Bonne journée.
 
- 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
5
Affichages
186
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
497
Réponses
3
Affichages
197
Retour