VBA: Macro sur plusieurs fichiers

Résolu/Fermé
biboupifa Messages postés 54 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 juillet 2013 - 11 juil. 2013 à 17:41
biboupifa Messages postés 54 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 juillet 2013 - 12 juil. 2013 à 14:14
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


6 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
11 juil. 2013 à 23:02
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.
0
biboupifa Messages postés 54 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 juillet 2013
12 juil. 2013 à 00:15
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)
0
biboupifa Messages postés 54 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 juillet 2013
12 juil. 2013 à 00:17
Ou la limite pour le premier point que je puisse faire un grand TCD avec les informations de tous les classeurs
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
12 juil. 2013 à 08:19
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.
0
biboupifa Messages postés 54 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 juillet 2013
12 juil. 2013 à 09:40
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?
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
12 juil. 2013 à 09:44
dir s'occupe du contenu d'un dossier mais pas de tcd et je répéte que tu ne fais pas de tcd multi-classeur, seulement multi-tableaux.
0
biboupifa Messages postés 54 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 juillet 2013
12 juil. 2013 à 10:00
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
0
biboupifa Messages postés 54 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 juillet 2013
12 juil. 2013 à 10:01
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
biboupifa Messages postés 54 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 juillet 2013
12 juil. 2013 à 12:11
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
0
biboupifa Messages postés 54 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 juillet 2013
12 juil. 2013 à 14:14
Bon j'ai trouvé une tout autre solution pour mon problème, merci quand meme :)
0