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
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
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
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.
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.
ç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)
ç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
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