Bonjour,
je viens une nouvelle fois vous demander conseil!
Je souhaite chercher dans la colonne 2 de mon tableau 1, la cellule qui contient le début de ma combobox.
Je m'explique :
- Ma combobox est constituée de deux éléments : "élément 1" : "élément 2"
- l'élement 1 est dans la colonne 2 de mon tableau 1 (colonne C)
- l'élement 2 est dans la colonne 4 de mon tableau (colonne E)
- une seule ligne de mon tableau contient l'élément 1
Je souhaite donc trouver à partir de ma combobox2, la ligne qui contient l'élément 1
Mon code est le suivant :
Private Sub test()
dim cel as range
For Each cel In .Range("C2:C" & Sheets("Inventaire").Range("C" & Sheets("Inventaire").Rows.Count).End(xlUp).Row)
If ComboBox2 Like cel.Value & "*" Then
cel.Offset(0, 5) = TextBox5 'Commentaire
cel.Offset(0, 6) = "Oui" 'Disponible
cel.Offset(0, 8) = TextBox6.Value 'Date retour
cel.Offset(0, 9) = "Toulouse" 'Agence - Localisation
End If
Next
End sub
Ce code marche sans souci, mais n'est pas du tout optimisé car il teste pour chaque ligne, alors qu'il suffit de trouver LA ligne concernée. Donc le temps d’exécution est très long.
J'ai testé :
Private Sub test()
dim lig as Long
Dim numero, materiel As String
If ComboBox2.Value <> "" Then
x = InStr(1, ComboBox2, ":", 1)
numero = Left(ComboBox2, x - 1)
materiel = Right(ComboBox2, Len(ComboBox2) - x - 1)
End If
With Sheets("Inventaire").ListObjects("Tableau1")
lig = .ListColumns(2).DataBodyRange.Find(numero.Value, LookIn:=xlValues, lookat:=xlWhole).Row
.Range.item(lig, 8) = "Oui"
End With
End sub
Mais ca ne fonctionne pas. Le programme tourne mais la ligne n'est jamais trouvée!
On m'a parlé hier de & "*" mais je ne sais trop comment l'adapter dans ce cas là ..
Si quelqu'un à la solution je suis preneuse !
Merci d'avance !