vba création d'un classeur avec onglets

mubaze

XLDnaute Nouveau
Bonsoir,

Je dispose d'un tableau avec une plage de A1:AR10000

mes données = la colonnes A represente le groupe (la holding) une holding peut avoir une ou plusieures entreprises.

la colonne B represente la liste de mes salariés qui appartiennent à une unique entreprises.

la colonne F intitulé code entreprise dispose des occurences suivantes: 10; 11;300;2082;... ces nombres peuvent se répéter car ils y a plusieurs salariés appartenant à la même entreprise.

je souhaite lancer une macro à partir de ce fichier volumineux pour creer des classeurs par entreprises. c'est à dire que mon classeurs aura pour nom la colonne A (le groupe). les onglets aurait pour noms les entreprises. Et dans chaque onglets je voudrai avoir les chaque lignes de mon fichier initiale.

voilà j'espere que j'ai été assez explicite.

je vous remercie d'avance.
 

ERIC S

XLDnaute Barbatruc
Re : vba création d'un classeur avec onglets

Bonjour

si la manip n'est pas répétitive
tu utilises les filtres
tu filtres selon l'entreprise
tu sélectionnes les lignes avec des noms
copier
coller

ça ira plus vite que par macro (le temps de la faire, de la tester...)
 

mubaze

XLDnaute Nouveau
Re : vba création d'un classeur avec onglets

Bonjour

si la manip n'est pas répétitive
tu utilises les filtres
tu filtres selon l'entreprise
tu sélectionnes les lignes avec des noms
copier
coller

ça ira plus vite que par macro (le temps de la faire, de la tester...)
si si la tache est répétitive.

j'ai trouvé ce fragment de code mais ça ne me récupere qu' une ligne et pas toutes les autres.


Sub CreeClasseurs()
Application.DisplayAlerts = False
f = ActiveSheet.Name
[A1:D10000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[h1], _
Unique:=True
For Each c In Range("H2", Range("H65000").End(xlUp))
Range("H2") = c
Sheets.Add
Sheets(f).[A1:F10000].AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets(f).[H1:H2], CopyToRange:=[A1], _
Unique:=False
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=c
ActiveWorkbook.Close
ActiveSheet.Delete
Sheets(f).Select
Next c
End Sub

est ce que vous pourriez m'expliquer ce code pour qu'ils répondent à ce que je veux. en l'occurence récuperer ttes les lignes issue du filtres. car actuellement il ne recupere qu'une unique ligne. ET aussi apparemment ça supprime les données du tableau originale.

Merci d'avance.
 

Catrice

XLDnaute Barbatruc
Re : vba création d'un classeur avec onglets

Bonjour,

Ci-joint une macro qui genere les fichiers en fonction de données.xls.
Les fichiers sont créés dans le meme dossier que le fichier données.xls.
S'il existe déjà des fichiers (correspondant au nom de la colonne A) ils sont détruits et remplacés par les nouveaux.
Il faut que seul le fichier données.xls soit ouvert.
 

Pièces jointes

  • données.zip
    21.3 KB · Affichages: 76
  • données.zip
    21.3 KB · Affichages: 71
  • données.zip
    21.3 KB · Affichages: 72

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 206
dernier inscrit
diambote