Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Suite recherche dans tableau en VBA

2 réponses
Avatar
francois63000
Bonjour,

hier j'ai poser une question à laquelle Fdecourt a apporter une solution.

Après adaptation de son code, je test le userform et c'est la qu'arrive mon
problème ou plutot 2 problèmes:
- la liste créée n'affiche que la première ligne trouvée; les
autre apparaissent mais vide.
- dasn cetrtain cas, il se produit un bug à la 2ème ligne
"Liste1.List(i, 4) = (Cells(c.Row, 5).Value)" et franchement je ne vois pas
pourquoi.


voila le code que j'ai rentrer


Private Sub CommandButton15_Click()
Liste1.Clear

With Worksheets(1).Range("a1:f65500")

Set c = .Find(textbox.Value, LookIn:=xlValues, LookAt:=xlPart)

If Not c Is Nothing Then
adresse1 = c.Address
Liste1.AddItem
Liste1.List(i, 0) = (Cells(c.Row, 1).Value)
Liste1.List(i, 1) = (Cells(c.Row, 2).Value)
Liste1.List(i, 2) = (Cells(c.Row, 3).Value)
Liste1.List(i, 3) = (Cells(c.Row, 4).Value)
Liste1.List(i, 4) = (Cells(c.Row, 5).Value)
Liste1.List(i, 5) = (Cells(c.Row, 6).Value)

Do

Set c = .FindNext(c)
Liste1.AddItem
Liste1.List(i, 0) = (Cells(c.Row, 1).Value)
Liste1.List(i, 1) = (Cells(c.Row, 2).Value)
Liste1.List(i, 2) = (Cells(c.Row, 3).Value)
Liste1.List(i, 3) = (Cells(c.Row, 4).Value)
Liste1.List(i, 4) = (Cells(c.Row, 5).Value)
Liste1.List(i, 5) = (Cells(c.Row, 6).Value)


Loop While Not c Is Nothing And c.Address <> adresse1
End If
End With

End Sub

rappel: J'ai un tableau et je voudrai afficher dans une liste toutes les
lignes qui contiennent la valeur d'un textbox quelquesoit la colonne dans
laquelle il se trouve

2 réponses

Avatar
FdeCourt
Hello,

Essayes ca :

Liste1.Clear
With Worksheets(1).Columns("A:F")
Set c = .Find(TextBox.Value, LookIn:=xlValues, LookAt:=xlPart)
If Not c Is Nothing Then
adresse1 = c.Address
ligne1 = c.Row
Do
ligne1 = c.Row
Set c = .FindNext(c)
If c.Row <> ligne1 Then
Liste1.AddItem
Liste1.List(i, 0) = (Cells(c.Row, 1).Value)
Liste1.List(i, 1) = (Cells(c.Row, 2).Value)
Liste1.List(i, 2) = (Cells(c.Row, 3).Value)
Liste1.List(i, 3) = (Cells(c.Row, 4).Value)
Liste1.List(i, 4) = (Cells(c.Row, 5).Value)
Liste1.List(i, 5) = (Cells(c.Row, 6).Value)
i = i + 1
End If
Loop While Not c Is Nothing And c.Address <> adresse1
End If
End With


On 2 fév, 09:31, francois63000
wrote:
Bonjour,

hier j'ai poser une question à laquelle Fdecourt a apporter une solutio n.

Après adaptation de son code, je test le userform et c'est la qu'arrive mon
problème ou plutot 2 problèmes:
- la liste créée n'affiche que la première ligne trouv ée; les
autre apparaissent mais vide.
- dasn cetrtain cas, il se produit un bug à la 2ème ligne
"Liste1.List(i, 4) = (Cells(c.Row, 5).Value)" et franchement je ne vois pas
pourquoi.

voila le code que j'ai rentrer

Private Sub CommandButton15_Click()
Liste1.Clear

With Worksheets(1).Range("a1:f65500")

Set c = .Find(textbox.Value, LookIn:=xlValues, LookAt:=xlPart)

If Not c Is Nothing Then
adresse1 = c.Address
Liste1.AddItem
Liste1.List(i, 0) = (Cells(c.Row, 1).Value)
Liste1.List(i, 1) = (Cells(c.Row, 2).Value)
Liste1.List(i, 2) = (Cells(c.Row, 3).Value)
Liste1.List(i, 3) = (Cells(c.Row, 4).Value)
Liste1.List(i, 4) = (Cells(c.Row, 5).Value)
Liste1.List(i, 5) = (Cells(c.Row, 6).Value)

Do

Set c = .FindNext(c)
Liste1.AddItem
Liste1.List(i, 0) = (Cells(c.Row, 1).Value)
Liste1.List(i, 1) = (Cells(c.Row, 2).Value)
Liste1.List(i, 2) = (Cells(c.Row, 3).Value)
Liste1.List(i, 3) = (Cells(c.Row, 4).Value)
Liste1.List(i, 4) = (Cells(c.Row, 5).Value)
Liste1.List(i, 5) = (Cells(c.Row, 6).Value)

Loop While Not c Is Nothing And c.Address <> adresse1
End If
End With

End Sub

rappel: J'ai un tableau et je voudrai afficher dans une liste toutes les
lignes qui contiennent la valeur d'un textbox quelquesoit la colonne dans
laquelle il se trouve


Avatar
francois63000
Ca marche à la perfection. trop fort les contributeurs du forum

Merci beaucoup




Hello,

Essayes ca :

Liste1.Clear
With Worksheets(1).Columns("A:F")
Set c = .Find(TextBox.Value, LookIn:=xlValues, LookAt:=xlPart)
If Not c Is Nothing Then
adresse1 = c.Address
ligne1 = c.Row
Do
ligne1 = c.Row
Set c = .FindNext(c)
If c.Row <> ligne1 Then
Liste1.AddItem
Liste1.List(i, 0) = (Cells(c.Row, 1).Value)
Liste1.List(i, 1) = (Cells(c.Row, 2).Value)
Liste1.List(i, 2) = (Cells(c.Row, 3).Value)
Liste1.List(i, 3) = (Cells(c.Row, 4).Value)
Liste1.List(i, 4) = (Cells(c.Row, 5).Value)
Liste1.List(i, 5) = (Cells(c.Row, 6).Value)
i = i + 1
End If
Loop While Not c Is Nothing And c.Address <> adresse1
End If
End With


On 2 fév, 09:31, francois63000
wrote:
Bonjour,

hier j'ai poser une question à laquelle Fdecourt a apporter une solution.

Après adaptation de son code, je test le userform et c'est la qu'arrive mon
problème ou plutot 2 problèmes:
- la liste créée n'affiche que la première ligne trouvée; les
autre apparaissent mais vide.
- dasn cetrtain cas, il se produit un bug à la 2ème ligne
"Liste1.List(i, 4) = (Cells(c.Row, 5).Value)" et franchement je ne vois pas
pourquoi.

voila le code que j'ai rentrer

Private Sub CommandButton15_Click()
Liste1.Clear

With Worksheets(1).Range("a1:f65500")

Set c = .Find(textbox.Value, LookIn:=xlValues, LookAt:=xlPart)

If Not c Is Nothing Then
adresse1 = c.Address
Liste1.AddItem
Liste1.List(i, 0) = (Cells(c.Row, 1).Value)
Liste1.List(i, 1) = (Cells(c.Row, 2).Value)
Liste1.List(i, 2) = (Cells(c.Row, 3).Value)
Liste1.List(i, 3) = (Cells(c.Row, 4).Value)
Liste1.List(i, 4) = (Cells(c.Row, 5).Value)
Liste1.List(i, 5) = (Cells(c.Row, 6).Value)

Do

Set c = .FindNext(c)
Liste1.AddItem
Liste1.List(i, 0) = (Cells(c.Row, 1).Value)
Liste1.List(i, 1) = (Cells(c.Row, 2).Value)
Liste1.List(i, 2) = (Cells(c.Row, 3).Value)
Liste1.List(i, 3) = (Cells(c.Row, 4).Value)
Liste1.List(i, 4) = (Cells(c.Row, 5).Value)
Liste1.List(i, 5) = (Cells(c.Row, 6).Value)

Loop While Not c Is Nothing And c.Address <> adresse1
End If
End With

End Sub

rappel: J'ai un tableau et je voudrai afficher dans une liste toutes les
lignes qui contiennent la valeur d'un textbox quelquesoit la colonne dans
laquelle il se trouve