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

Suite bis recherche dans un tableau en VBA

2 réponses
Avatar
francois63000
Bonjour à tous voila quelque temps (le 02/02/07) j'avais poser sur ce site
une question à laquelle Fdecourt ml'avais apporter une réponse qui jusque la
me convenait tout à fait

sauf que le problème c'est que lorsque dans mont tableau il n'y a qu'une
seule occurence, la ligne n'estpas reportée dans ma liste. En plus, la
première occurence trouvée se trouve en fin de liste au lieu du début. les
autre étant classée comme il faut.

Pour rappel le code est
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

Merci d'avance

2 réponses

Avatar
anonymousA
Bonjour,

Ca devrait être mieux comme 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
Do
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
Set c = .FindNext(c)

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

End If

End With



On 14 fév, 16:00, francois63000
wrote:
Bonjour à tous voila quelque temps (le 02/02/07) j'avais poser sur ce s ite
une question à laquelle Fdecourt ml'avais apporter une réponse qui ju sque la
me convenait tout à fait

sauf que le problème c'est que lorsque dans mont tableau il n'y a qu'une
seule occurence, la ligne n'estpas reportée dans ma liste. En plus, la
première occurence trouvée se trouve en fin de liste au lieu du déb ut. les
autre étant classée comme il faut.

Pour rappel le code est
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

Merci d'avance


Avatar
francois63000
OK merci beaucoup


Bonjour,

Ca devrait être mieux comme 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
Do
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
Set c = .FindNext(c)

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

End If

End With



On 14 fév, 16:00, francois63000
wrote:
Bonjour à tous voila quelque temps (le 02/02/07) j'avais poser sur ce site
une question à laquelle Fdecourt ml'avais apporter une réponse qui jusque la
me convenait tout à fait

sauf que le problème c'est que lorsque dans mont tableau il n'y a qu'une
seule occurence, la ligne n'estpas reportée dans ma liste. En plus, la
première occurence trouvée se trouve en fin de liste au lieu du début. les
autre étant classée comme il faut.

Pour rappel le code est
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

Merci d'avance