Microsoft 365 Remlir combobox selon conditon.

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

  • Test_Combobox-Remplisage.xlsm
    20.1 KB · Affichages: 9

Jacky67

XLDnaute Barbatruc
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

  • Test_Combobox-Remplisage.xlsm
    21.8 KB · Affichages: 8
Dernière édition:

New_VBA_User

XLDnaute Nouveau
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.
 

New_VBA_User

XLDnaute Nouveau
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: 12

Jacky67

XLDnaute Barbatruc
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
 

New_VBA_User

XLDnaute Nouveau
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: 6
Dernière édition:

Jacky67

XLDnaute Barbatruc
ç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

  • Test_Combobox-Remplisage_.v2.xlsm
    35.1 KB · Affichages: 8

New_VBA_User

XLDnaute Nouveau
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.
 

Discussions similaires

Réponses
1
Affichages
164
Réponses
0
Affichages
148

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87