Macro création fichier Excel à partir de critères dans une colonne

De passage

XLDnaute Nouveau
Bonjour à tous,


Expression du besoin:
*****************

À partir d'un fichier Excel contenant plusieurs colonnes, je souhaiterais qu'une macro crée automatiquement autant de fichiers qu'il y a de critères identiques dans une colonne donnée.


J'ai bien essayé d'enregistrer une macro mais je bute car les éléments sont en brut et je souhaiterais pouvoir réutiliser mois après mois cette macro, les données dans la colonne "user" évoluant bien entendu en fonction des mois...


Mon fichier présente la structure suivante:

Matricule / Domaine / Sous-domaine / Date(au format jj/mm/aaaa) / User

Aujourd'hui je fais manuellement un filtre sur le "user". Pour chaque "user", je copie-colle dans un nouveau fichier que j'enregistre sous le nom : Saisie_xxxx (nom du user)_année_mois.

Je souhaiterais pouvoir automatiser tout cela :)

Il s'agit donc (j'imagine...) de créer une boucle ("tant qu'il y a des users différents dans la colonne...") et probablement de définir certaines variables comme le mois et l'année par ex (à moins que la lecture du mois et de l'année dans la colonne "date" puisse servir lors de la sauvegarde du nouveau fichier créé pour être intégré dans le nom du fichier...)


Merci beaucoup pour votre aide
 

Modeste

XLDnaute Barbatruc
Re : Macro création fichier Excel à partir de critères dans une colonne

Bonjour De Passage et bienvenue à toi,

(espérons seulement que le pseudo n'aura rien de prémonitoire ... mais on le saura bientôt :rolleyes:)

Pour ta question, je verrais assez bien un petit fichier exemple pour illustrer tes explications (notamment le rapport entre le 'user' et le mois :confused:). Point n'est besoin de beaucoup de données (juste quelques unes qui soient représentatives de l'ensemble ... sans que le fichier contienne d'infos confidentielles!)

Je présume aussi que dans:
autant de fichiers qu'il y a de critères identiques dans une colonne
... il faut lire différents!?
 

De passage

XLDnaute Nouveau
Re : Macro création fichier Excel à partir de critères dans une colonne

Bonjour,

Mon pseudo est l'illustration de mon manque d'imagination... :eek:

Voici un fichier de test.

Effectivement, l'idée est de créer autant de fichiers qu'il y a de "users" différents (dans mon exemple, un fichier qui s'appellerait "Saisies user1 2012 03", un autre qui s'appellerait "Saisies user2 2012 03"...)
 

Pièces jointes

  • Test.xlsx
    11.8 KB · Affichages: 168
  • Test.xlsx
    11.8 KB · Affichages: 186
  • Test.xlsx
    11.8 KB · Affichages: 189

Modeste

XLDnaute Barbatruc
Re : Macro création fichier Excel à partir de critères dans une colonne

Ah, De Passage, de retour!?

En imaginant que j'aie correctement compris, tu peux essayer de coller ce code dans un module standard de ton fichier test (dans un premier temps :rolleyes:) Les nouveaux fichiers vont s'enregistrer au même emplacement que le fichier contenant la macro.
Je suis parti du principe que pour un "user" il n'y aurait qu'un seul mois, en colonne E. D'autre part, pas de contrôle de l'existence d'un fichier au nom identique ... à voir!
VB:
Sub CreeFichiers()
Application.ScreenUpdating = False
chemin = ThisWorkbook.Path & "\"
With Sheets("Test")
Set liste = CreateObject("scripting.dictionary")
For Each u In .Range("G2:G" & .Range("G" & Rows.Count).End(xlUp).Row)
    liste(u.Value) = Format(u.Offset(0, -2), "yyyy_mm")
Next u

For Each k In liste.keys
    .Range("$A$1").CurrentRegion.AutoFilter Field:=7, Criteria1:=k
    .Range("$A$1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
    Workbooks.Add
    ActiveWorkbook.Sheets(1).Paste
    ActiveWorkbook.SaveAs chemin & "Saisies_" & k & "_" & liste(k)
    ActiveWorkbook.Close
    .ShowAllData
Next k
End With
Application.ScreenUpdating = True
End Sub
Teste toujours ... et dis-nous si c'est ok (sur ma machine, trois fichiers ont été générés, contenant chacun ce que je crois qu'ils doivent contenir et avec le nom attendu ... si j'ai bien tout compris :p)
 

Discussions similaires