Recopier des lignes si plusieurs conditions sont remplies

Bonjour,

J'aimerais recopier des lignes d'une feuille "brute" sur une autre feuille selon plusieurs conditions.

Je joins un fichier avec la base brute, sur "Tab1" j'aimerai, si je traduis : SI dans la feuille "base brute" la colonne "Equipement" égale à "S1-PONZ1H1C et S1-PONZ1H1CT" alors recopier les lignes y correspondant sur "Tab1".

J'avais auparavant enregistré une macro en faisant mes filtres + mon copier-coller mais cela ne fonctionne pas correctement lorsque j'ai une nvlle base brute.

3q3-forum.xlsx (11.43 Ko)

En remerciant d'avance,

Bonjour,

Je propose d'utiliser un filtre avancé + macro pour ne pas avoir à le faire manuellement:

4q3-forum.xlsm (18.16 Ko)

Macro à appeler: Filtre

Merci ! Si je veux rajouter d'autres conditions, ou dois-je les renseigner dans le code/feuille ?

Autrement c'est impeccable

Sub Filtre()
Dim FeuilleSource As Worksheet, FeuilleCible As Worksheet
'initialisations
Set FeuilleSource = Sheets("Base Brute")
Set FeuilleCible = Sheets("Tab 1")

'réinitialisation de la feuille Tab 1
With FeuilleCible
    If Not .Range("B6") = "" Then
        .Range("B6").CurrentRegion.Clear
    End If
End With

'Filtre avancé
FeuilleCible.Select
FeuilleSource.Range("B1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=FeuilleCible.Range("A1").CurrentRegion, CopyToRange:=FeuilleCible.Range("A6:W6"), Unique:=False
End Sub

Pour ajouter des conditions, il faut modifier la plage de critère dans la feuille Tab 1, il est possible d'ajouter des colonnes, des lignes.

Il faut aussi potentiellement modifier:

    If Not .Range("B6") = "" Then
        .Range("B6").CurrentRegion.Clear

et

FeuilleSource.Range("B1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=FeuilleCible.Range("A1").CurrentRegion, CopyToRange:=FeuilleCible.Range("A6:W6"), Unique:=False

Si la plage de critère contient des lignes en plus, ça va décaler l'endroit où on veut exporter le résultat du filtre, donc il faudra modifier le numéro de ligne 6 par autre chose, ou alors mettre la plage de critère dans une autre feuille. Je vous invite à vous renseigner sur la réalisation d'un filtre avancé, c'est ce que j'ai utilisé.

2q3-forum-2.xlsm (40.17 Ko)

J'ai manipulé un peu la macro et je me suis renseigné sur les filtres avancés. J'ai donc créé dans l'excel un Tab 2 avec d'autres critères (j'ai ~ 1300 données à traiter), cela fonctionne mais le système me donne en plus d'autres "appellations" d'équipements que je n'ai pas renseigné dans les critères.. Ex : S1-PONZ3H1CT que je n'ai pas renseigné dans la plage des critère Tab 1.

Je vous joins mon deuxième essai avec la macro associé.

Bonjour,

Je ne pensais pas que vous alliez créer plusieurs feuilles.

J'ai corrigé la macro de la feuille qui avait un souci et ai bien mis un espace entre la zone de critère et le résultat du filtre.

3q3-forum-2.xlsm (26.27 Ko)

Je vous remercie. Je vais le mettre en place pour son application réelle, j'espère que j'arriverai à le manipuler correctement pour qu'il fonctionne.

Merci encore,

Bonne journée !

Dans votre vrai cas vous allez aussi avoir plusieurs feuilles?

Si c'est le cas j'aimerais éviter que vous ayez à dupliquer le code que j'ai produit pour chaque feuille.

Re,

Pardonnez ma réponse tardive

Oui, je vais avoir environ 10 feuilles (+ 'base brute" qui sera renouvelée chaque semaine), le but étant de trier les nouveaux OT par catégories (qui sont les fameux critères S1-PON...). Pour ce faire je pensais avoir une feuille de base avec la macro dessus + les critères, je la duplique en changeant tout simplement les critères.

Je vous joins les données que je dois traiter avec si ça peut vous aider..

2q3forum.xlsx (167.17 Ko)

Bonjour,

Voici une proposition qui devrait faire l'affaire comme on a qu'une seule colonne pour les critères à chaque fois:

2q3forum.xlsm (176.39 Ko)

J'ai créé une feuille filtre, on met une colonne de filtre pour chaque feuille qu'on veut obtenir (donc ici deux) avec le détail de ce qu'on veut y voir apparaître.

A noter: j'ai dû écrire '=S1-PONZ4H3M pour la deuxième feuille, car sans faire ça, ça prenait toutes les références d'équipement qui commençaient par cette référence, y compris celles non souhaitées...

J'ai prévu que vous alliez supprimer manuellement les feuilles "Tab" avant de lancer la macro, sinon ça affichera un message d'erreur et interrompra la macro.

C'est magnifique, merci ! Je vais travailler avec ce système.

Au plaisir de vous revoir

Content d'avoir pu vous proposer une solution qui semble faire l'affaire, merci d'avoir passé le sujet en résolu et bonne journée

Rechercher des sujets similaires à "recopier lignes conditions remplies"