Probleme de boucle do while loop

bonjour a tous,

j'ai un ti soucis, j'ai chercher un peu partout sur le forum et je ne trouve pas... soit la macro tourne en boucle soit elle fait planter excel... dans mon fichier j'ai essayé plusieurs methodes mais rien ne passe....

principe: prendre des lignes dans un tableau sur une feuille 1 en fonction d'un id variable placé dans la colonne B

cet id est définit par la textbox80. Puis copier ces lignes (entre 0 et 5 maxi) et les placer dans la feuille 2 a partir de la ligne 20 et jusqu’à la ligne 25. Et dans l'idéal je ne voudrais copier que les éléments entre les colonnes C et F.

with feuille1
maxrow2 = feuille1.UsedRange.Rows.Count
For i = 3 To maxrow2
Do While (StrComp(feuille1.Cells(i, 2).Value, UserForm1.TextBox80.Value, vbTextCompare) = 0)
Rows(i).Select
Selection.Copy Destination:=Worksheets("feuille2").Range("A20").End(xlDown)
Loop
Next
end with

merci d'avance a tous

Bonjour,

Sans grande conviction

With feuille1
    maxrow2 = .Cells(Rows.Count, 2).End(xlUp).Row
    For i = 3 To maxrow2
        If .Cells(i, 2).Text = UserForm1.TextBox80.Text Then
        ' ou TextBox80.Value
            Rows(i).Copy Destination:=Worksheets("feuille2").Range("A20")
        End If
    Next
End With

merci Jean-Eric, je testerai cette aprem et je te tiendrai au courant

C bon, merci Jean-éric, ça fonctionne bien

Par contre j'ai plusieurs lignes qui peuvent porter le même id, du coup j'ai besoin de transférer toutes les lignes sur la feuille 2, les une a la suite des autres de A20 à A25, c'est faisable tu crois avec le .end(xlup) a la fin de la destination de la copie?

RE,

Ta demande n'est pas claire :

With feuille1
    maxrow2 = .Cells(Rows.Count, 2).End(xlUp).Row
    lRow = 20
    For i = 3 To maxrow2
        If .Cells(i, 2).Text = UserForm1.TextBox80.Text Then
        ' ou TextBox80.Value
           Rows(i).Copy Destination:=Worksheets("feuille2").Range("A" & lRow)
          lRow = lRow + 1
        End If
    Next
End With

désolé,

je viens de tester ta méthode, elle ne fonctionne pas mais c'est presque cela que je cherche

dans la feuille 1 j'ai une base de donnée et la colonne B contient l'id qui permet d'extraire (copier coller) vers la feuille 2.

dans la base de donnée de la feuille 1 l'id peut apparaître 5 fois maximum dans 5 lignes séparées.

sur la feuille 2 je dois faire apparaître ces 5 lignes entre les lignes 20 et 25

Si besoin je t'envoie le fichier en pj

Re,

Envoie le fichier.

Cdlt.

Rechercher des sujets similaires à "probleme boucle while loop"