VBA : Créer des classeurs excel à partir d'une liste
Résolu/Fermé
borgognoremy
Messages postés
19
Date d'inscription
vendredi 17 mai 2013
Statut
Membre
Dernière intervention
6 juin 2013
-
29 mai 2013 à 15:52
foo - 31 mai 2013 à 11:02
foo - 31 mai 2013 à 11:02
A voir également:
- Créer un fichier excel vba
- Créer un compte google - Guide
- Creer un fichier .bat - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
5 réponses
Bonjour
Voila une routine pour la creation de classeurs
Sub CreatListe()
Chemin = ActiveWorkbook.Path
For L = 1 To Range("A" & Rows.Count).End(xlUp).Row
Fichier = Range("A" & L).Value
ChemFiche = Chemin & "\" & Fichier & ".xls"
Workbooks.Add
ActiveWorkbook.SaveAs ChemFiche
ActiveWorkbook.Close True
Next
End Sub
A+
Maurice
Voila une routine pour la creation de classeurs
Sub CreatListe()
Chemin = ActiveWorkbook.Path
For L = 1 To Range("A" & Rows.Count).End(xlUp).Row
Fichier = Range("A" & L).Value
ChemFiche = Chemin & "\" & Fichier & ".xls"
Workbooks.Add
ActiveWorkbook.SaveAs ChemFiche
ActiveWorkbook.Close True
Next
End Sub
A+
Maurice
borgognoremy
Messages postés
19
Date d'inscription
vendredi 17 mai 2013
Statut
Membre
Dernière intervention
6 juin 2013
30 mai 2013 à 14:10
30 mai 2013 à 14:10
Rebonjour maurice,
Je suis embêté parce que je voudrais ajouter pleins d'autres instructions avant de finir la macro pour que la boucle prenne ces instructions. Je voulais utiliser "Fichier" (que j'ai remplacé par affaire) mais ça ne marche pas.
Peux-tu jeter un oeil stp?
Encore merci d'avance
Sub Nvx_class_par_affaire()
'Macro créant un nouveaux classeur par projet et exécutant des tâches diverses'
Chemin = ActiveWorkbook.Path
'Formule de boucle"
For L = 1 To Range("A" & Rows.Count).End(xlUp).Row
affaire = Range("A" & L + 1).Value
ChemFiche = Chemin & "\" & affaire & ".xls"
'Ajout d'un nouveau classeur'
Workbooks.Add
'Sauvegarde du classeur à l'emplacement du fichier source'
ActiveWorkbook.SaveAs ChemFiche
'Renomme les feuilles'
Worksheets("Feuil1").Name = "Résumé"
Worksheets("Feuil2").Name = "Dépenses"
Worksheets("Feuil3").Name = "Engagements"
'activation du fichier source et ouverture feuille Depenses_cum"
Workbooks("Base_dep_eng_CA.xlsm").Activate
Sheets("Depenses_cum").Select
'Filtre la feuille sur l'affaire'
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A:$Y").AutoFilter Field:=4, Criteria1:=affaire
'Copie des données colonne A à Y'
Range("A:$Y").Copy
'Coller dans le fichier de l'affaire'
Workbooks(affaire).Activate
Sheets("Dépenses").Select
Range("A:$Y").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'Ferme le classeur de l'affaire'
ActiveWorkbook.Close True
Next
End Sub
Je suis embêté parce que je voudrais ajouter pleins d'autres instructions avant de finir la macro pour que la boucle prenne ces instructions. Je voulais utiliser "Fichier" (que j'ai remplacé par affaire) mais ça ne marche pas.
Peux-tu jeter un oeil stp?
Encore merci d'avance
Sub Nvx_class_par_affaire()
'Macro créant un nouveaux classeur par projet et exécutant des tâches diverses'
Chemin = ActiveWorkbook.Path
'Formule de boucle"
For L = 1 To Range("A" & Rows.Count).End(xlUp).Row
affaire = Range("A" & L + 1).Value
ChemFiche = Chemin & "\" & affaire & ".xls"
'Ajout d'un nouveau classeur'
Workbooks.Add
'Sauvegarde du classeur à l'emplacement du fichier source'
ActiveWorkbook.SaveAs ChemFiche
'Renomme les feuilles'
Worksheets("Feuil1").Name = "Résumé"
Worksheets("Feuil2").Name = "Dépenses"
Worksheets("Feuil3").Name = "Engagements"
'activation du fichier source et ouverture feuille Depenses_cum"
Workbooks("Base_dep_eng_CA.xlsm").Activate
Sheets("Depenses_cum").Select
'Filtre la feuille sur l'affaire'
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A:$Y").AutoFilter Field:=4, Criteria1:=affaire
'Copie des données colonne A à Y'
Range("A:$Y").Copy
'Coller dans le fichier de l'affaire'
Workbooks(affaire).Activate
Sheets("Dépenses").Select
Range("A:$Y").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'Ferme le classeur de l'affaire'
ActiveWorkbook.Close True
Next
End Sub
Re
je pense que tu veux un truc comme ca
http://cjoint.com/?3EEoCJ8hZWf
A toi de voir si ca te convient
A+
Maurice
je pense que tu veux un truc comme ca
http://cjoint.com/?3EEoCJ8hZWf
A toi de voir si ca te convient
A+
Maurice
borgognoremy
Messages postés
19
Date d'inscription
vendredi 17 mai 2013
Statut
Membre
Dernière intervention
6 juin 2013
30 mai 2013 à 15:03
30 mai 2013 à 15:03
Pas vraiment :)
En fait la valeur affaire qui va varier au fur et à mesure de la boucle je souhaiterais l'utiliser dans mes instruction de copier/ coller, de Filtrer. Seulement, il me dit que l'indice n'existe pas. Là où j'ai souligné et mis en gras, c'est à ces moments que j'aimerais utiliser la valeur affaire qui va varier au fur et à mesure de la boucle.
Est-ce que ça te parait clair mon problème ou je m'exprime comme un pied (ce qui est fort probable ) ;) ?
En fait la valeur affaire qui va varier au fur et à mesure de la boucle je souhaiterais l'utiliser dans mes instruction de copier/ coller, de Filtrer. Seulement, il me dit que l'indice n'existe pas. Là où j'ai souligné et mis en gras, c'est à ces moments que j'aimerais utiliser la valeur affaire qui va varier au fur et à mesure de la boucle.
Est-ce que ça te parait clair mon problème ou je m'exprime comme un pied (ce qui est fort probable ) ;) ?
borgognoremy
Messages postés
19
Date d'inscription
vendredi 17 mai 2013
Statut
Membre
Dernière intervention
6 juin 2013
30 mai 2013 à 16:40
30 mai 2013 à 16:40
https://www.cjoint.com/c/CEEqMJJw1ap
Voilà mon classeur. il a exactement cette structure. J'ai enlevé les 3/4 des données.
Voilà mon classeur. il a exactement cette structure. J'ai enlevé les 3/4 des données.
borgognoremy
Messages postés
19
Date d'inscription
vendredi 17 mai 2013
Statut
Membre
Dernière intervention
6 juin 2013
31 mai 2013 à 10:19
31 mai 2013 à 10:19
Maurice, c'est bon... Ma variable affaire elle marchait très bien en fait... c'est juste que sur ma première affaire, il n'y avait rien dans le tableau filtré la concernant :)
Milles merci pour ton aide ... c'est super sympa
Milles merci pour ton aide ... c'est super sympa
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
30 mai 2013 à 09:38
Je vais essayer de voir pour intégrer toutes les tâches que j'ai à faire. Je suppose qu'il faut que je les mette avant le next... à voir.
Encore merci !
Baieta