Recherches multiples et copie sur autres feuille en VBA

Bonjour à tous,

A partir d' une base de produits stockés sur une feuille ("Data"), qui sont référencés sur 2 colonnes, une qui contient un code et l' autre l' intitulé, je voudrait réorganiser les produits sur d' autres feuilles selon leur entête de code (PAA***, PBB***, etc etc)

Tous les produits dont le code commence par PAA devront être copiés sur la feuille "Produit A"

Tous les produits dont le code commence par PBB devront être copiés sur la feuille "Produit B"

Dans le fichier joint, il y a peu de produits et peu de type de code.

Au final, il y aura au moins une quinzaine de type de code à trier et 2 000 produits.

J'ai commencé à faire l' ébauche d' un code, mais je coince sérieusement:

Sub ClasserProduit()

Dim cel As Range

    For Each cel In Worksheets("Data").Range("A:A")
            If cel.Text Like "PAA*" Then
               cel.EntireRow.Copy Destination:=Worksheets("Produit A").Range("A1")
            End If

    Next

   For Each cel In Worksheets("Data").Range("A:A")
            If cel.Text Like "PBB*" Then
             cel.EntireRow.Copy Destination:=Worksheets("Produit B").Range("A1")
          End If

    Next

 For Each cel In Worksheets("Data").Range("A:A")
            If cel.Text Like "PCC*" Then
            cel.EntireRow.Copy Destination:=Worksheets("Produit C").Range("A1")
           End If

 Next
 

Le code ne copie qu' un seul produit pour chaque type de recherche.

Le code est très long à s 'exécuter, je n' ose imaginer sur 2 000 produits.

Je suis bien conscient de la pauvreté de mon code, mais je n' ai pas réussi à insérer des fonctions pour limiter les recherches au cellules uniquement remplies, et à optimiser ou imbriquer les recherches pour réduire le code. l'exemple est sur 3 types de recherches, j' ai au moins 15 types de recherches à faire.

Merci

Bonjour

A tester

Bonjour Banzai64,

Merci pour ta réponse rapide et la conception d' un filtre très élaboré ! Il fonctionne très bien et est très rapide.

J' ai un peu de mal a décortiquer le code, même si j' en ai compris une bonne partie de la mécanique, mais je crains d' avoir un peu de mal à le maintenir et à l' adapter au fur à mesure de mes besoins.

Dans l' exemple, pour simplifier, j' ai nommé les feuilles Produit A, Produit B, etc etc ...

Hors la macro se base sur sur le mot "produit" + la deuxième lettre du code pour transférer les données sur les feuilles correspondantes, ce qui est une très bonne idée. Seulement ces feuilles, au final, auront des noms sans "suite logique" avec le code et sans nom commun .

Désolé de ne pas l' avoir précisé plus tôt, mais je ne pensais pas que l' on pouvait réalisé une macro aussi fine et complexe .

Dans le fichier joint, tu parles d' une recherche avec un filtre plus simple, ce serait pour moi, peut-être plus facile à maintenir et plus modulable.

Même si le code est plus long en traitement, je devrais réaliser cette mise à jour une fois par semaine, ce n' est pas gênant.

Encore merci pour le travail

Bonjour

Tonher a écrit :

mais je crains d' avoir un peu de mal à le maintenir et à l' adapter au fur à mesure de mes besoins.

Tu n'as rien à faire, si le fichier fourni , comme on le demande, est conforme au fichier réel au niveau structure, noms de page etc ...

Donc tu as donné un fichier qui n'a aucun rapport au vrai fichier

Une macro est, dans la plupart des cas, adaptée à un certaine organisation des données, et changer cette disposition équivaut à reprendre la macro pour l'adapter

Il faut que tu fournisses un fichier ayant la même structure que ton fichier réel

Bonjour,

Ce qui changera dans la structure du fichier , c' est le nombre et le nom des feuilles qui évolueront au fil du temps, mais dans mon entreprise, je n' ai pas la maitrise des nouvelles données qui vont arriver et le tri que l' on va m' imposer... je pensais, à tord, pouvoir modifier aisément dans la macro la relation "entête de code" --> "destination de la feuille" En sachant que les futurs noms de feuilles, je ne les connais pas encore.

La structure des codes ne changera pas, 3 chiffres + 3 lettres, les 3 premières lettres déterminent le type de produits.

Je ne peux pas vraiment fournir le vrai fichier, car ce sont des données d' entreprise, j'ai fait en sorte de m' en rapprocher au mieux.

j' ai refais un nouveau fichier, ou seul le nom des feuilles a changé, quand au nouvelles feuilles à rajouter et le nom qu' elles porteront, je n' en sait rien pour l' instant ...

Encore merci

Bonjour

A vérifier

Merci Bonzai64,

Le code marche parfaitement bien avec une très bonne solution pour adapter le nom des feuilles avec le code associé.

Je mets en résolu

Rechercher des sujets similaires à "recherches multiples copie feuille vba"