1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| Private Sub NcRecherche_Change()
Dim AdresseID As Integer, EquipmentID As Integer, C As Range, Ctr As Boolean
'Recherche de l'"Adresse ID correspondant au nom de la première combobox
If Me.NcRecherche.ListIndex = -1 Then Exit Sub
With Sheets("table adresse")
'les fonctions Index et Match correspondent aux fonctions INDEX et EQUIV
AdresseID = Application.Index(.[A:A], Application.Match(Me.NcRecherche.Value, .[B:B], 0))
End With
'remplissage de la combobox Nmarque
With Sheets("table equipement adresse")
'effacement des éléments de la combobox Nmarque
Me.Nmarque.Clear
'boucle sur les cellules de la colonne C de laa feuille "table equipement adresse"
For Each C In .Range(.[C2], .Cells(.Rows.Count, 3).End(xlUp))
'si on trouve correspondance avec l'AdresseID
If C.Value = AdresseID Then
'on ajoute au combobox l'élément de la colonne C correspondant à l'equipment ID
'à l'aide des fonctions INDEX et EQUIV
'test
If IsNumeric(Application.Match(C.Offset(, -1).Value, _
['table equipement actif'!A:A], 0)) Then
Me.Nmarque.AddItem _
Application.Index(['table equipement actif'!C:C], Application.Match(C.Offset(, -1).Value, _
['table equipement actif'!A:A], 0))
'et on met Ctr à "True"
Ctr = True
End If
End If
Next C
'si Ctr est à False, c'est qu'on n'a pas trouvé de matériel pour le client
If Ctr = False Then MsgBox " pas de machine chez ce client"
End With
End Sub |
Partager