copier certaines lignes avec condition de plusieurs feuilles dans une seule

  • Initiateur de la discussion Initiateur de la discussion laurent samson
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

laurent samson

Guest
bonjour
j'essaye de copier des lignes avec une condition en colonne E (si OK) sur différentes feuilles dans mon classeur (sans forcement connaitre le nom précis) puis les copier dans une feuille nommée
"Analyse des besoins terminés"
je n'arrive pas à m'en sortir quelqu'un peut il m'aider ??
merci d'avance
 

Pièces jointes

Re : copier certaines lignes avec condition de plusieurs feuilles dans une seule

re,

d'après ce que j'ai compris de ton problème, je te propose ce code , qui permet de copier les lignes de la feuille "analyse des besoins" dont la colonne E équivaut à "Ok", dans la feuille "analyse des besoins terminés". Si il faut sélectionner sur plusieurs feuilles je pense qu'il faut rejouter un for devant mon "for i..." comme ceci : "for j=1 to NomClasseur.sheets.count" et remplacer les "Analyse des besoins" par "j".


dim Li as integer
Li = 2
For i = 2 To NomClasseur.Sheets("Analyse des besoins").Cells(65536, 3).End(xlUp).Row

If NomClasseur.Sheets("Analyse des besoins").Cells(i, 5).Value = "Ok" Then

NomClasseur.Sheets("Analyse des besoins").Cells(i, 1).EntireRow.Copy Destination:=NomClasseur.Sheets("Analyse des besoins terminés").Cells(Li, 1)
Li = Li + 1

End If
Next i

En espérant que cela t'aide 🙂


Gimli
 
Dernière édition:
Re : copier certaines lignes avec condition de plusieurs feuilles dans une seule

bonjour Gimli
et merci de me proposer une solution.
l'idée de la macro est d'aller vérifier sur toutes les feuilles présentes dans le classeur sauf la feuille Analyse des besoins terminés. puis si la valeur de la cellule de la colonne E est égale à Ok alors copier la ligne et la mettre à la suite sur la feuille analyse des besoins terminés
merci de ton éclairage.
cordialement
 
Re : copier certaines lignes avec condition de plusieurs feuilles dans une seule

Re,

le code que j'ai proposé, si tu rajoute l'autre FOR, va regarder dans toutes les feuilles pour vérifier si oui ou non la colonne E contient "Ok", si oui les lignes visées seront copiées vers "analyse des besoins terminés". Ce que je vais dire à présent est peut être bête, mais est-il grave si la macro vérifie également la feuille "analyse des besoins terminés" ? Car après tout, la macro va quand même recopier les lignes sur cette feuilles, donc il n'y aura pas de lignes d'oubliées 😕. Cependant , ça fait un peu "bidouillage" ^^ et je suis certain qu'il existe une macro qui répondrait exactement à tes attentes, mais de mon côté je ne sais pas comment faire pour exclure "analyse des besoins terminés" de la recherche 😉

bon courage


Gimli
 
Re : copier certaines lignes avec condition de plusieurs feuilles dans une seule

bonjour Gimli
j'ai essayé la macro que tu m'as proposé mais elle ne fonctionne pas.
effectivement je peux me passer du controle sur la feuille sur Analyse des besoins terminés.
je reformule ma demande en essayant d'être plus précis.
j'ai un nombre de feuille indéterminé dans un classeur. dans l'exemple il y a Analyse des besoins et la feuille essai, mais dans l'environnement normal, je ne sais pas le nombre de feuille.
je controle sur l'ensemble des feuilles du classeur la colonne E et si la valeur des cellules est OK alors je copie la ligne compléte dans l'onglet Analyse des besoins terminés.
merci de ton aide ou de vos aides
 
Re : copier certaines lignes avec condition de plusieurs feuilles dans une seule

Bonjour laurent, le forum,

quel est le message d'erreur qui s'affiche ? Tu as bien remplacé "NomClasseur" par le nom de ton classeur ? (un oubli est si vite arrivé ^^)
Pour le nombre de feuille indéterminé ce n'est pas un problème car le
"for j=1 to NomClasseur.sheets.count" va compter le nombre de feuilles que tu as au moment ou la macro s'éxécutera.

Cordialement,


Gimli
 
Re : copier certaines lignes avec condition de plusieurs feuilles dans une seule

Bonjour laurent samson
je viens de lire le dernier post
"for j=1 to NomClasseur.sheets.count" va compter le nombre de feuilles que tu as au moment ou la macro
sauf que dans ta macro il ne faut pas tenir compte de la feuille ou tu colles les résultats!!!!
a+
papou 🙂
 
Re : copier certaines lignes avec condition de plusieurs feuilles dans une seule

Bonjour Paritec

plus haut sur le fil j'avai précisé à Laurent que je n'avais pas la solution pour exclure cet onglet...

je suis certain qu'il existe une macro qui répondrait exactement à tes attentes, mais de mon côté je ne sais pas comment faire pour exclure "analyse des besoins terminés" de la recherche 😉

bon courage


...


Gimli
 
Re : copier certaines lignes avec condition de plusieurs feuilles dans une seule

re
voilà ce qu'il faut faire pour l'exclusion de la feuille
a+
papou 🙂

Code:
sub trier  'enfin le nom de sa macro
dim ws as worksheet
for each ws in worksheets
If ws.name<> "la feuille a exclure" then 
'ses conditions de trie
next ws
end if
end sub
 
Re : copier certaines lignes avec condition de plusieurs feuilles dans une seule

Bonjour laurent, le forum,

quel est le message d'erreur qui s'affiche ? Tu as bien remplacé "NomClasseur" par le nom de ton classeur ? (un oubli est si vite arrivé ^^)
Pour le nombre de feuille indéterminé ce n'est pas un problème car le
"for j=1 to NomClasseur.sheets.count" va compter le nombre de feuilles que tu as au moment ou la macro s'éxécutera.

Cordialement,


Gimli

re
voilà ce qu'il faut faire pour l'exclusion de la feuille
a+
papou 🙂

Code:
sub trier  'enfin le nom de sa macro
dim ws as worksheet
for each ws in worksheets
If ws.name<> "la feuille a exclure" then 
'ses conditions de trie
next ws
end if
end sub

bonjour paritec et gimli
je n'arrive pas à faire fonctionner ma macro (je ne suis pas doué)
je renvoi le fichier avec la compil de ta proposition et celle de gimli
merci de m'aider car je suis très embeter avec ce problème.
cordialement à vous deux



Sub copierversfeuille()
Dim ws As Worksheet
Dim j As Range
Dim Li As Integer

For Each ws In Worksheets
If ws.Name <> "Analyse des besoins terminés" Then


Li = 2
For i = 2 To Sheets(ws).Cells(65536, 3).End(xlUp).Row

If Sheets(ws).Cells(i, 5).Value = "Ok" Then

Sheets(ws).Cells(i, 1).EntireRow.Copy Destination:=NomClasseur.Sheets("Analyse des besoins terminés").Cells(Li, 1)
Li = Li + 1

End If
End If
Next i

Next ws



End Sub
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour