VBA: Macro sur plusieurs fichiers
Résolu
biboupifa
Messages postés
54
Date d'inscription
Statut
Membre
Dernière intervention
-
biboupifa Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
biboupifa Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis actuellement en train de traiter des informations issues de plusieurs fichiers excels identiques sur la forme (les colonnes sont toujours à la meme position et les lignes fluctuent). je bloque sur 3 choses :/ :
j'aurais besoin de faire un TCD mais sur plusieurs feuilles de plusieurs fichiers. Mon problème est donc de dire à excel qu'il faut le faire sur les 28 fichiers qui ont des noms différents mais qui se trouvent dans le meme fichier.
D'autres part j'aurais besoin de récupérer le total pour chaque colonne de mon TCD, qui peut etre 3 colonnes comme 5.
Enfin, j'ai un tableau sur une feuille d'un classeur avec
horizontalement le nom de l'entreprise qui correspond au nom d'une feuille dans un classeur (il n'existe qu'une fois sur les feuille d'un classeur)
et verticalement j'ai des cellules avec le meme nom que mes colonne du TCD
Etant donné le nombre, est il possible de dire à excel: si tu vas piocher le résultat du TCD dans la colonne "CRT01" dans classeurA dans la feuille classeurA_MDD, alors tu me mets ce résultat dans la cellule de mon tableau qui est le croisement entre la ligne CRT01 et la colonne classeurA_MDD
Voila, j'espère avoir été clair. je touche un peu à vba mais la j'ai atteint mes limites :/
merci d'avance pour votre aide
je suis actuellement en train de traiter des informations issues de plusieurs fichiers excels identiques sur la forme (les colonnes sont toujours à la meme position et les lignes fluctuent). je bloque sur 3 choses :/ :
j'aurais besoin de faire un TCD mais sur plusieurs feuilles de plusieurs fichiers. Mon problème est donc de dire à excel qu'il faut le faire sur les 28 fichiers qui ont des noms différents mais qui se trouvent dans le meme fichier.
D'autres part j'aurais besoin de récupérer le total pour chaque colonne de mon TCD, qui peut etre 3 colonnes comme 5.
Enfin, j'ai un tableau sur une feuille d'un classeur avec
horizontalement le nom de l'entreprise qui correspond au nom d'une feuille dans un classeur (il n'existe qu'une fois sur les feuille d'un classeur)
et verticalement j'ai des cellules avec le meme nom que mes colonne du TCD
Etant donné le nombre, est il possible de dire à excel: si tu vas piocher le résultat du TCD dans la colonne "CRT01" dans classeurA dans la feuille classeurA_MDD, alors tu me mets ce résultat dans la cellule de mon tableau qui est le croisement entre la ligne CRT01 et la colonne classeurA_MDD
Voila, j'espère avoir été clair. je touche un peu à vba mais la j'ai atteint mes limites :/
merci d'avance pour votre aide
A voir également:
- VBA: Macro sur plusieurs fichiers
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
6 réponses
Bonjour,
dire à excel qu'il faut le faire sur les 28 fichiers qui ont des noms différents mais qui se trouvent dans le meme fichier.
C'est-à-dire ?
28 fichiers dans le même ?
Peux-tu expliquer ta méthode ?
récupérer le total pour chaque colonne
Avec la fonction LIREDONNEESTABCROISDYNAMIQUE tu peux le faire
dire à excel: si tu vas piocher le résultat du TCD
Ta procédure est possible dans ce que j'ai compris mais il faut adresser correctement les données : pour t'en dire plus il faudrait la structure que tu utilises et qu'il est difficile de voir sans le classeur.
dire à excel qu'il faut le faire sur les 28 fichiers qui ont des noms différents mais qui se trouvent dans le meme fichier.
C'est-à-dire ?
28 fichiers dans le même ?
Peux-tu expliquer ta méthode ?
récupérer le total pour chaque colonne
Avec la fonction LIREDONNEESTABCROISDYNAMIQUE tu peux le faire
dire à excel: si tu vas piocher le résultat du TCD
Ta procédure est possible dans ce que j'ai compris mais il faut adresser correctement les données : pour t'en dire plus il faudrait la structure que tu utilises et qu'il est difficile de voir sans le classeur.
Bonsoir,
Merci de ta réponse,
Par le premier point j'entends par la que tous les classeurs dans lesquels je veux faire les calculs se trouvent dans le même dossier. Désolé ce n'était pas clair.
Ce que j'aimerais faire consiste effectuer une macro pour tous les classeurs. Il faudrait donc que le code dise: "pour toutes les feuilles des classeurs du dossier" puis un call MA_MACRO.
Je pense donc a une boucle mais je ne sais pas comment initier cette boucle puisque je ne sais pas faire une collection ou un truc dans le genre.
Pour la fonction en effet je peux faire ça mais je voulais savoir si il y avait moyen de récupérer tous les totaux d une ligne. Car il me semble que la fonction ne peut récupérer qu une cellule. Je cherche donc a récupérer tous les totaux.
Enfin dernier point: je voudrais qu il arrive a savoir en prenant le total du Tcd que ce total est le total, dans mon cas, du nombre de cartons utilisé (information dans l'entête de la colonne) et cela pour le client (information qui est le nom de la feuille)
Merci de ta réponse,
Par le premier point j'entends par la que tous les classeurs dans lesquels je veux faire les calculs se trouvent dans le même dossier. Désolé ce n'était pas clair.
Ce que j'aimerais faire consiste effectuer une macro pour tous les classeurs. Il faudrait donc que le code dise: "pour toutes les feuilles des classeurs du dossier" puis un call MA_MACRO.
Je pense donc a une boucle mais je ne sais pas comment initier cette boucle puisque je ne sais pas faire une collection ou un truc dans le genre.
Pour la fonction en effet je peux faire ça mais je voulais savoir si il y avait moyen de récupérer tous les totaux d une ligne. Car il me semble que la fonction ne peut récupérer qu une cellule. Je cherche donc a récupérer tous les totaux.
Enfin dernier point: je voudrais qu il arrive a savoir en prenant le total du Tcd que ce total est le total, dans mon cas, du nombre de cartons utilisé (information dans l'entête de la colonne) et cela pour le client (information qui est le nom de la feuille)
Bonjour,
Un TCD se fait avec les données d'une plage tableau (éventuellement de plusieurs) dans un classeur mais non sur plusieurs classeurs : ce que tu veux c'est plutôt une synthèse de tes classeurs.
Pour récupérer tous les totaux il suffit de totaliser le résultat de chaque fonction mais là tu cumules n'importe quoi en ramassant toutes le rubriques.
Tu peux faire la boucle sur le dossier avec la fonction DIR.
Un TCD se fait avec les données d'une plage tableau (éventuellement de plusieurs) dans un classeur mais non sur plusieurs classeurs : ce que tu veux c'est plutôt une synthèse de tes classeurs.
Pour récupérer tous les totaux il suffit de totaliser le résultat de chaque fonction mais là tu cumules n'importe quoi en ramassant toutes le rubriques.
Tu peux faire la boucle sur le dossier avec la fonction DIR.
ce que j'aimerais pour mon TCD c'est juste les totaux par colonne, le reste m'est égale.
effectivement ca n'a plus de sens de faire ça. en principe je ne devrais avoir des colonnes régulières donc je vais faire ça comme ça. mais si qqun connait un moyen de récupérer tous les totaux colonnes ça m'arrangerait bien.
en effet avec dir ça peut marcher, mais me fera-t-il mes tcd sur toutes mes feuilles des classeurs?
effectivement ca n'a plus de sens de faire ça. en principe je ne devrais avoir des colonnes régulières donc je vais faire ça comme ça. mais si qqun connait un moyen de récupérer tous les totaux colonnes ça m'arrangerait bien.
en effet avec dir ça peut marcher, mais me fera-t-il mes tcd sur toutes mes feuilles des classeurs?
oui j'avais compris, je reprends:
j'ai un fichier principal dans lequel je voudrais récupérer dans un tableau le total d'un tcd. comme je ne peux pas faire de tcd multiclasseur je voudrais donc creer un tcd pour chaque feuille d'un classeur, et du coup récuperer le total de chaque tcd pour chaque feuille de classeur
j'ai un fichier principal dans lequel je voudrais récupérer dans un tableau le total d'un tcd. comme je ne peux pas faire de tcd multiclasseur je voudrais donc creer un tcd pour chaque feuille d'un classeur, et du coup récuperer le total de chaque tcd pour chaque feuille de classeur
en fait mon probleme combine deux choses:
la premiere creer un nouveau tcd a chaque feuille de chaque classeur
et celui la qui n'a pas été résolu https://forums.commentcamarche.net/forum/affich-1405691-tcd-excel-et-vba
la premiere creer un nouveau tcd a chaque feuille de chaque classeur
et celui la qui n'a pas été résolu https://forums.commentcamarche.net/forum/affich-1405691-tcd-excel-et-vba
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai peut etre trouvé une solution mais je ne sais pas trop pourquoi ca ne marche pas:
j'ai créé un fichier avec le nom de mes classeurs dans la feuille 1:
et je fais le code suivant mais qui a un problème:
Sub ajout_feuille()
Sheets.Add.Move after:=Sheets(Sheets.Count)
End Sub
Sub Multi_macro()
Dim fichier
Dim i
i = 1
fichier = Sheets(1).Range(Trim("a" + CStr(i))).Value
While fichier <> ""
fichier = Sheets(1).Range(Trim("a" + CStr(i))).Value
Windows(fichier + ".csv").Activate
Sheets(fichier).Select
Call ajout_feuille
i = i + 1
Wend
End Sub
j'ai créé un fichier avec le nom de mes classeurs dans la feuille 1:
et je fais le code suivant mais qui a un problème:
Sub ajout_feuille()
Sheets.Add.Move after:=Sheets(Sheets.Count)
End Sub
Sub Multi_macro()
Dim fichier
Dim i
i = 1
fichier = Sheets(1).Range(Trim("a" + CStr(i))).Value
While fichier <> ""
fichier = Sheets(1).Range(Trim("a" + CStr(i))).Value
Windows(fichier + ".csv").Activate
Sheets(fichier).Select
Call ajout_feuille
i = i + 1
Wend
End Sub