Macro - Mise en forme BDD multi-critères

Bonjour à tous,

Je souhaite trouver la macro qui me permette dans une base de données excel, de supprimer les lignes qui ne répondent pas à certains critères.

Dans l'exemple du fichier excel ci-joint, je souhaite un code macro qui ne garde que les lignes du "Groupe" "ACETO FRANCE SAS" , est-ce possible?

https://www.excel-pratique.com/~files/doc2/TESTMACRO2.xls

Merci pour votre temps,

Cordlt,

Etienne

Bonjour etienne,

Mets ce code dans un module :

Sub supprLign()

Dim i As Integer

For i = Range("A65000").End(xlUp).Row To 2 Step -1
    If Cells(i, 4) <> "ACETO FRANCE SAS" Then
        Rows(i).Delete
    End If
Next i

End Sub

Bonjour vba-new,

Ta formule marche nickel, je t'en remercie.

Cependant, lorsque j'applique la macro sur le fichier voulu, elle met 1/2h à s'effectuer (base de données EXCEL de 13000 lignes ).

Suis-je condamné à attendre ce temps-là pour parvenir à mes fins?

Merci encore,

Etienne

Une deuxième question si je puis me permettre,

Puis-je multiplier les critères de la macro? (conserver les lignes de plusieurs groupes)

Merci à toi,

Etienne

Bonjour à tous,

Tu veux filtrer ou supprimer définitivement les lignes ?

envoie le fichier avec seulement les en-têtes et quelques lignes

Amicalement

Claude.

édit: pas vu que tu avais joint au début, je regarde

Bonjour dubois,

Je souhaite filtrer en fonction de la variable "groupe" afin qu'il ne reste que les groupes qui m'intéressent ; une fois que cela est fait, je devrais copier toutes les lignes concernés puis les coller dans un autre fichier excel (base de données spécifique).

Sinon il me semble que le fichier joint est un exemple bref avec des en-têtes.

Merci pour ton intérêt,

Etienne

re,

Autant extraire sur une 2ème feuille les critères qui t'intéressent, non ?

je regarde dans ce sens

Claude.

Re,

N'est ce pas plus rapide de transférer les lignes correspondant aux critères directement à l'emplacement désiré?

Il se peut que j'ai du mal à voir dans ton sens.

Etienne

Re, Salut claude

Fallait le dire avant que tu voulais filtrer et pas supprimer

Voici une solution avec un filtre élaboré : https://www.excel-pratique.com/~files/doc2/Copie_de_TESTMACRO2_3.xls

re,

filtre avec extraction sur autre feuille

https://www.excel-pratique.com/~files/doc2/TEST_filtre.xls

Salut vba-new

Claude.

Bonjour vba-new,

Une fois de plus merci,

Cependant, cette technique de filtre élaboré marche uniquement sur le fichier que tu m as renvoyé, j'ai pu le constater. Lorsque je fais exactement la même manip sur un autre fichier, soit ça ne filtre rien, soit ça cache toutes les lignes (même celles qui répondent aux critères demandés)

Etienne

Hum.. bizarre

As-tu également testé avec le fichier de claude?

La structure de tes données principales est-elle rigoureusement la même? Peux-tu poster une capture d'écran?

Re tout le monde,

Sur vos fichiers respectifs, vos méthodes fonctionnent parfaitement.

Lorsque je les applique à d'autres fichiers (en faisant les modifications nécessaires), je tombe sur des erreurs.

Par exemple :

Sub Extr()

Dim Lg As Long

Lg = Range("A65536").End(xlUp).Row

Range("a1:i" & Lg).Name = "base"

Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _

"b138:b139"), CopyToRange:=Range("BDD2009filtr!a1:i"), Unique:=False

End Sub

Ce code entraîne une erreur : "erreur d'execution '1004' :

La méthode 'Range' de l'objet '_Global' a échoué"

J'admire votre patience,

Merci,

Etienne

Peux-tu dire sur quelles lignes et colonnes se trouvent tes données? Et quelle feuille également?

a1:i133 pour les données

La feuille se nomme : "Base de données Grd cptes 2009"

re,

envoie ton fichier réel

en gardant que les premières lignes

Claude.

https://www.excel-pratique.com/~files/doc2/yJIWDTEST_filtre.xls

Voila une partie du fichier dans l'onglet "Base de données..."

Merci :O

Re,

Voici le fichier filtré : https://www.excel-pratique.com/~files/doc2/yJIWDTEST_filtre_V1.xls

La zone de critères doit se trouver sur la même feuille que les données que tu filtres. En l'occurrence.

C'est bon je suis callé en filtre élaboré, merci vba-new et dubois

Prochaine étape : Codage macro

Le fichier excel à trier et à copier se trouve à cet emplacement : "K:\Qualité\AAA\RESSOURCES SYSTEMES DE MANAGEMENT\FRANCE\KPIs" , il se nomme "2009 06", onglet "MASTER" .

Le fichier où il faut ajouter les données préalablement copiés se trouve à cet emplacement: "P:\Mes Documents" , il se nomme "Fichier Gestion Grands comptes" , onglet "Base de données Grd cptes 2009" .

Voila, je dois coder ça, en théorie c'est pas grand chose, en pratique c'est monstreux. Je vais tout de même essayer par moi-même en attendant.

Merci à tous.

Etienne

Re,

Pourquoi codage macro

Pouquoi ne pas faire un simple copier coller

Rechercher des sujets similaires à "macro mise forme bdd multi criteres"