Effectuer une boucle

Bonsoir,

Quel code dois-je utiliser pour effectuer un certain traitement boucle tant que les cellules de la colonne A sont renseignées (non vide) ?

En l'occurence, je souhaiterais que le ligne 2 de la feuille "Récap client" soit coller en valeur sur la ligne 9 de la feuille "Masque".

Ensuite je souhaite sélectionner A2:H6 de cette même feuille Masque, et la coller en valeur après la dernière ligne renseigné de la feuille "Ecritures"

Puis la même opération mais en copiant la ligne 3 de la feuille "Récap client" et ainsi de suite jusqu'à la dernière ligne.

J'ai essayé de traduire par code ce que je desire avec l'enregistreur mais voilà, ce n'est pas tout à fait ça, car c'est mo qui suis allé sélectionner la ligne 2 puis la 3 manuellement.

fichier joint

Sub Macro4()
'
' Macro4 Macro
'

'
    Sheets("Récap client").Select
    Rows("2:2").Select  
    Selection.Copy
    Sheets("Masque").Select
    Range("A9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A2:H6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ecritures").Select
    Range("A1").Select
    Selection.End(xlDown).Select
    Range("A3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Récap client").Select
    Rows("3:3").Select  
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Masque").Select
    Range("A9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A2:H6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ecritures").Select
    Range("A1").Select
    Selection.End(xlDown).Select
    Range("A8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("F18").Select
End Sub

Je vous remercie d'avance

Bonsoir,

si vous ne connaissez pas le nombre de ligne utilisée en colonne A vous pouvez faire un DO LOOP avec un test pour en sortir (sinon c'est "infini").

Dim Ligne_testée As Long
Ligne_testée = 2
Do
    If Cells(Ligne_testée,1).Value = "" Then Exit Do
    ' le code que vous voulez faire
    Ligne_testée = Ligne_testée +1
Loop

@ bientôt

LouReeD

Merci beaucoup LouReeD.

Je vais essayer.

Comme dit certain, il faut essayer, essayer et essayer encore !

Pus on se trompe et plus on y arrive !

Ceci dit vous connaissez l'adresse du site !

@ bientôt

LouReeD

J'ai trouvé un code très similaire au tien mais exprimé d'une manière qui me parlait un peu plus.

    FinLigne = Application.WorksheetFunction.CountA(Range("A:A"))
    NumeroLigne = 2

    While NumeroLigne < FinLigne

          'la je colle mes instructions

    NumeroLigne = NumeroLigne + 1

    Wend

Et ça fonctionne bien.

Merci encore LouReed pour ton aide.

Oui, et d'ailleurs si vous connaissez les limite de la zone vous pouvez utilisez un FOR TO NEXT

    Dim FinLigne As long, Bcl As Long
    FinLigne = Application.WorksheetFunction.CountA(Range("A:A"))
    For Bcl = 2 to FinLigne
          'la je colle mes instructions
    Next

En fait des boucles il y en a plein....

@ bientôt

LouReeD

Rechercher des sujets similaires à "effectuer boucle"