Parcourir des feuilles et copier des lignes sous condition

Bonjour à tous,

D'abord je tiens à remercier toutes les personnes généreuses dans ce forum avec qui on apprend tous les jours à mieux coder

J'ai besoin de parcourir les feuilles de mon fichier et copier que les lignes avec une mention KO sur ma nouvelle feuille "Macro".

Voici mon code, il ne marche pas car il s'arrête au bout de la première feuille.

A savoir mon fichier a 19 onglets avec même pas 50 lignes dans chacun

Voici mon code:

Sub MiseAjour()

Dim f As Worksheet, ln&, derln&, lgn&

For Each f In Worksheets

If f.Name <> "Régularisation" And f.Name <> "Feuil1" And f.Name <> "Feuil2" Then

'derln = f.Range("A" & Rows.Count).End(xlUp).Row

If Range("X2") = "" Then

derln = 22

Else

derln = Sheets("Macro").Range("X2").End(xlDown).Row + 1

End If

For ln = 4 To derln&

If f.Range("X" & ln) = "KO" Then

f.Range("A" & ln & ":X" & ln).Copy

lgn = Application.Max(22, Range("A" & Rows.Count).End(xlUp)(2).Row)

'f.Range("A" & cell.Row & ":X" & cell.Row).Copy

Range("A" & lgn).PasteSpecial xlPasteValues

End If

Next ln

Pourriez-vous svp m'aider à l'améliorer

D'avance merci

Bon début de semaine

bonjour,

Pourrais tu joindre ton fichier stp.

si tu as des données confidentielles, tu peux les anomyser en suivant le cours.

fronck

Merci bcp Franck,

voici mon fichier, j'ai mis le minimum d'exemple car mon fichier est confidentiel donc j'ai des onglets avec les noms des clients et dans chacun des dérogations en cours, arrivées à échéances et d'autres proche de leur fin

J'aimerai copier les lignes avec une mention ko et les lignes avec une échéance inférieure à 3 mois

Tout ça je dois le copier dans la feuille macro à partir de la ligne 22.

Je vous remercie d'avance.

Mon code est ci dessous dans mon premier message

7test1.xlsx (39.20 Ko)

bonjour Lara,

voilà.

a+

fronck

Merci bcp Fronck, le code marche à merveille sauf que j'ai 19 onglets dans mon fichier, serait-il possible de faire une boucle pour éviter le cas par cas ?

D'avance merci

Lara

Bonjour Lara, bonjour à tous,

j'ai commencé à chercher dans le forum le code pour plusieurs onglets.

j'en ai trouvé un qui ouvre un classeur et recopie tous ses onglets dans un autre classeur, mais là on travaille sur un même classeur.

je vais chercher du code avec un array pour lister tes 19 onglets.

a+

fronck

Bonjour Lara,

voilà c'est fait , aprés une bonne suée

maintenant, il te reste à mettre les 17 autres noms dans le code

    For Each sh In Array("Société x", "société Y")

a+

fronck

Bonjour,

et si tu peux mettre tes 19 onglets avec la même racine "société",

on peut faire sans "array" à compléter.

a+

fronck

Rechercher des sujets similaires à "parcourir feuilles copier lignes condition"