VBA : Créer des classeurs excel à partir d'une liste
Résolu
borgognoremy
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
foo -
foo -
A voir également:
- Créer un fichier excel vba
- Fichier bin - Guide
- Creer un fichier .bat - Guide
- Créer un compte google - Guide
- Comment créer un groupe whatsapp - Guide
- Comment réduire la taille d'un fichier - 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
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
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 ) ;) ?
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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