Combobox et filtres
bonjour, je débute en VBA.
cela fait une semaine que je ne trouve pas de réponse à mon problème.
J'ai créer un usf avec combobox j'ai fait ce code pour récupérer les données visibles apres filtre dans ma combobox :
ComboBox3.Clear
Dim c As Range
With Worksheets("Feuil5")
For Each c In .Range("A24:A" & .Cells(.Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
ComboBox3.AddItem (c.Value)
Next
End With
End Sub
si je n'applique pas mon filtre tout fonctionne.
Le problème est donc le suivant :
mes textbox (dont les valeurs sont dans d'autres colonnes) sont liés par la listindex de la combobox3. Hors si je sélectionne apres filtre une valeur dans la combobox3 alors les résultats sont faux. Voici une partie de mon code : Pourriez vous m'aider s'il vous plaît ?
Je précise que cet USF ne me sert qu'a modifier, rechercher, et trier. j'ai un autre USF pour insérer mes nouvelles données
'valeurs des cellules dans la combobox 3
Private Sub ComboBox3_Change()
Dim n°_ligne As Integer
n°_ligne = ComboBox3.ListIndex + 24
TextBox1.Value = Cells(n°_ligne, 1).Value
ComboBox1.Value = Cells(n°_ligne, 2).Value
ComboBox2.Value = Cells(n°_ligne, 4).Value
DTPicker1.Value = Cells(n°_ligne, 13).Value
CheckBox3.Value = Cells(n°_ligne, 15).Value
TextBox2.Value = Cells(n°_ligne, 15).Value
If TextBox2.Value = True Then
TextBox2.Value = "FINI"
Else
TextBox2.Value = "au planning"
End If
End Sub
'Valeur de la texbox1
Private Sub TextBox1_AfterUpdate()
Dim n°_ligne As Integer
n°_ligne = ComboBox3.ListIndex + 24
If TextBox1.Value = Cells(n°_ligne, 1).Value Then
Cells(n°_ligne, 1).Value = TextBox1.Value
"valeur de la combobox1
Private Sub ComboBox1_Change()
Dim n°_ligne As Integer
n°_ligne = ComboBox3.ListIndex + 24
If ComboBox1.Value = Cells(n°_ligne, 2).Value Then
Cells(n°_ligne, 2).Value = ComboBox1.Value
Else
Select Case MsgBox("confirmer MODIFIER ?", vbYesNo)
Case vbYes
Cells(n°_ligne, 2).Value = ComboBox1.Value
MsgBox "modification effectuée"
Case vbNo
ComboBox1.Value = Cells(n°_ligne, 2).Value
MsgBox "aucun changement"
End Select
End If
End Sub
Else
Select Case MsgBox("confirmer MODIFIER ?", vbYesNo)
Case vbYes
Cells(n°_ligne, 1).Value = TextBox1.Value
MsgBox "modification effectuée"
Case vbNo
TextBox1.Value = Cells(n°_ligne, 1).Value
MsgBox "aucun changement"
End Select
End If
End Sub
Bonsoir,
Du code hors balises Code !