Macro triant par code

Bonjour,

Voilà mon soucis. Je dois travailler sur un fichier excel très grand (disons entre 150 et 200k lignes), et je dois régulièrement extraire des données de ce loooooong fichier en plusieurs fichier excel.

Les données à extraire sont classés avec un ID (02,03,04 etc...), je le fais donc manuellement. Temps de travail avoisinant les 2/3h selon le fichier.

Je voudrais effectuer ce traitement avec une macro/ fichier VBA afin d'une part de gagner du temps et d'autres part automatiser un peu ce traitement assez fastidieux.

Quelqu'un peut-il m'aider ? :/

Merci de votre sollicitation.

PS : Je pense que dans un premier temps ma macro va devoir trier mes données selon leur ID [mais je ne sais pas comment faire, et oui je sais c'est honteux car opération assez basique] et ensuite il faut qu’après ce triage, j'exporte ces données dans un nouveau fichier.

Bonjour,

Sans fichier, dur dur de proposer quoi que ce soit !

Pourrais-tu joindre un morceau de fichier exemple avec quelques lignes de différentes ID que les membres puissent faire des tests et te proposer quelque chose (et surtout voir comment sont structurées les données) ?

De même, une fois le tri fait, l'export doit se dérouler comment ? Un nouveau fichier pour toutes les données, un fichier par ID, etc. etc...

Cordialement,

Effectivement sans fichier cela va être dur pour vous de m'aider. Je vais essayer de vous poster ça, ou de créer un fichier ressemblant au maximum au fichier car c'est un fichier client professionnel.

Alors oui en effet une fois le tri fait, l'export doit créer un fichier par ID (en sachant qu'au dernier export il y avait quelque chose comme 50 ID différents).

L'ID en question est la colonne et la colonne IDOK correspond à un numéro quelconque, c'est bien par le N° que je souhaiterais effectuer le tri.

Cordialement.

6forum-excel.xlsx (9.97 Ko)

Voilà déjà une macro pouvant effectuer le tri en fonction de ta colonne N° (il faut bien entendu remplacer Feuil1 par ton vrai nom d'onglet) :

Sub Tri()

Dim DerLigne As Long

DerLigne = Range("A" & Rows.Count).End(xlUp).Row

    Range("A1:L" & DerLigne).Select
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A2:A" & DerLigne) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil1").Sort
        .SetRange Range("A1:L" & DerLigne)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

End Sub

Pour l'export, il faudrait encore quelques renseignements, ou doivent être crées les fichiers ? Dans le même dossier que la ou se trouvera ton original ? Dans un autre dossier ? Tous les fichiers en fonction des ID dans le même dossier ? Chacun dans un dossier spécifique ? En local ? Sur un serveur ?

Etc. Etc.

Cordialement,

Parfait ! Merci beaucoup.

Quand je fais l'export manuellement, j’extraie donc mes données en fonction de l'ID. Ces données correspondent à un magasin et je tri ces magasins en fonction de s'ils sont sur Paris ou en Province.

A la fin de mon export j'ai l'arborescence suivante :

/Racine

/Paris

/Magasins 1

export 1

/Magasins 2

export 2

/Province

/Magasins 10

Export 10

/Magasins 11

Export 11

Mais dans un premier temps si l'export se trouve dans le même dossier que l'original cela me convient amplement. Après si avec ma macro je peux indiquer ou enregistrer mon export en fonction de l'ID c'est vrai que je suis quand même preneur

L'export doit se faire en local (pour ensuite envoyer par mails ces fichiers.).

Cordialement.

Encore quelques questions désolé ^^

Une fois que tu as fait tes envois par mail, que deviennent les fichiers ? Tu les effaces ou ils restent dans le dossier et il faut prévoir une façon de nommer le fichier différemment pour ne pas écraser les données précédentes ?

Et les dossiers des magasins en eux-mêmes, ils sont toujours présents, ou tu les effaces après ton envoi et il faut vérifier leur existence / les recréer si besoin ?

Cordialement,

Une fois les mails envoyés, je ne touche plus aux fichiers. Je pourrais les supprimer en effet, mais je les garde dans les dossiers appropriés au cas ou il y aurait une erreur.

J'ai un dossier racine, dans ce dossier racine j'ai un dossier qui correspond à un mailing.

Je pense qu'il serait plus simple de créer un dossier contenant la date du jour et de mettre dans ce dossier les fichiers exportés dans leur dossier appropriés en fonction de leur ID.

En gros sa donne ça je pense :

/Racine

/Date du jour

/Dossier en fonction de l'ID

Fichier exportés correpondant à l'ID

Est-ce que ma réponse est assez clair ? :/

Cordialement.

Rechercher des sujets similaires à "macro triant code"