Accueil > Forum > > > > macro excel pour récupérer le contenu de plusieurs cellules d'autres feuilles
macro excel pour récupérer le contenu de plusieurs cellules d'autres feuilles
mardi 2 mai 2006 à 20:36:43 |
macro excel pour récupérer le contenu de plusieurs cellules d'autres feuilles

pierre9393
|
Bonjour,
Je suis stagiaire, et je galère:
J'ai des données de 4 années, avec une feuille excel par jour... soit 365 fichiers * 4.
Chaque fichier porte comme nom la date (important pour la suite), et
sur chaque fichier, une seule feuille m'intéresse, classiquement
appelée feuille 1, plus exactement le contenu de huit cellules
disposées en rectangle (genre imaginons: A1-B1-C1-D1-A2-B2-C2-D2)
Dans ces cases, il y a des numéros, et c'est la somme qui m'intéresse,
mais bon, si au moins je peux récuper les 8 cellules sur une seule
ligne, c'est deja pas mal, la somme je peux la faire apres.
En gros, j'aimerais obtenir au final un fichier excel, avec:
le nom du fichier qui a été ouvert, et la sommes des 8 cellules mentionnées (ou bien les 8 cellules remise sur une ligne).
Est-ce possible de tout obtenir par une seule macro ? (les fichiers ont
tous un nom unique "Bilan_Journalier_Usine_01_03_2003" seule la date
change. Tous les fichiers du même mois sont dans le meme repertoire,
les meme repertoire de la meme année sont dans un même repertoire.
J'ai chercher sur le forum, j'ai trouvé des solutions approchantes,
genre chercher le contenue d'une cellule d'autres fichiers, mais il
n'etait pas question de copier le nom du fichier en face, et la c'est
de somme dont il s'agit.
Je serais tres content que vous puissiez m'aider, je n'ai aucune connaissance en programmation (chuis plutot chimiste)...
Merci beaucoup, je suis a votre disposition pour plus d'infos.
Bonne soirée
|
|
mardi 2 mai 2006 à 21:06:25 |
Re : macro excel pour récupérer le contenu de plusieurs cellules d'autres feuilles

pierre9393
|
Re
En fait, après relecture, j'ai besoin non pas d'obtenir la somme, mais les 12 cellules (3*4) sur une même ligne.
Je suis désolé pour le petit changement de dernière minute
|
|
mardi 2 mai 2006 à 22:53:40 |
Re : macro excel pour récupérer le contenu de plusieurs cellules d'autres feuilles

JIPERE
|
Ouvrez un XLS à nommer AnMOIS.XLS
par Menu: Outils, Macros, macros
Créer une macro (2 3 mouvements) et vous arrétez l'enreg.
par Menu: Outils, Macros, macros => Macro1 [Modifier]
vous copier ceci (à la place de l'enreg bidon):
Sub Macro1()
===================================================
' Mettre le bon chemin
Dim CheAn, Chemois, Fichxl, T_M(12) As String
Dim T_An(4), X, M, Lig As Integer
' Mise en place des noms dossiers An dans X postes
T_An(1) = 2003: T_An(2) = 2004: T_An(3) = 2005: T_An(4) = 2006
' Tableau des dossiers Mois (juste l'élément qui varie)
T_M(1) = "Jan": T_M(2) = "Feb": T_M(3) = "Mar": T_M(4) = "Avr":
T_M(5) = "MAI": T_M(6) = "JUN": T_M(7) = "JUI": T_M(8) = "AOU":
T_M(9) = "SEP": T_M(10) = "OCT": T_M(11) = "NOV": T_M(12) = "DEC":
For X = 1 To 4 ' On boucle 4 fois pour 4 ans
' on charge le répertoire d'1 année T_An(X) dans la variable Chemxl
CheAn = "C:\Documents and Settings\JPIERRE\vb6\" & T_An(X)
For M = 1 To 12 ' on va sur 12 dossiers Mois
Chemois = CheAn & "\Mois_" & T_M(M)
' Cette commande met le nom du 1er .XLS du dossier c:\an\mois\...
Fichxl = Dir(Chemois & "\*.XLS")
Do While Fichxl <> "" ' si plus de fichier => fin
Workbooks.Open Filename:= _
Chemois & "\" & Fichxl
'"C:\Documents and Settings\JPIERRE\Mes documents\Excel\LEVIER1.xls"
Range("D16:G16").Select ' on select les cellules
Selection.Copy ' on le copie
Windows("Anmois.xls").Activate ' on va sur l'XL centralisateur
Lig = Lig + 1
Range("A" & Lig).Select ' Col A ligne Lig, chemin & fichier
ActiveCell.Value = Chemois & "\" & Fichxl
Range("B" & Lig).Select ' Col B
ActiveSheet.Paste ' on colle les cellules
Windows(Fichxl).Activate ' on revient sur le fcihier lu
ActiveWorkbook.Close ' pour le fermer
Fichxl = Dir ' nom Fichier suivant
Loop
Next M
Next X
======================================================
End sub
Corriger les constantes Chemin, et par F8 faire du pas à pas
pour comprendre et modifier la macro si nécessaire.
Maintenant mon Mail est jeanpierre.rougier@wanadoo.fr
si vous voulez je vous envoie le xl AnMois.XLS
qu'il faudra quand-même modifer pour l'adapter à vos chemins.
Voilà.
|
|
mardi 2 mai 2006 à 22:53:44 |
Re : macro excel pour récupérer le contenu de plusieurs cellules d'autres feuilles

JIPERE
|
Ouvrez un XLS à nommer AnMOIS.XLS
par Menu: Outils, Macros, macros
Créer une macro (2 3 mouvements) et vous arrétez l'enreg.
par Menu: Outils, Macros, macros => Macro1 [Modifier]
vous copier ceci (à la place de l'enreg bidon):
Sub Macro1()
===================================================
' Mettre le bon chemin
Dim CheAn, Chemois, Fichxl, T_M(12) As String
Dim T_An(4), X, M, Lig As Integer
' Mise en place des noms dossiers An dans X postes
T_An(1) = 2003: T_An(2) = 2004: T_An(3) = 2005: T_An(4) = 2006
' Tableau des dossiers Mois (juste l'élément qui varie)
T_M(1) = "Jan": T_M(2) = "Feb": T_M(3) = "Mar": T_M(4) = "Avr":
T_M(5) = "MAI": T_M(6) = "JUN": T_M(7) = "JUI": T_M(8) = "AOU":
T_M(9) = "SEP": T_M(10) = "OCT": T_M(11) = "NOV": T_M(12) = "DEC":
For X = 1 To 4 ' On boucle 4 fois pour 4 ans
' on charge le répertoire d'1 année T_An(X) dans la variable Chemxl
CheAn = "C:\Documents and Settings\JPIERRE\vb6\" & T_An(X)
For M = 1 To 12 ' on va sur 12 dossiers Mois
Chemois = CheAn & "\Mois_" & T_M(M)
' Cette commande met le nom du 1er .XLS du dossier c:\an\mois\...
Fichxl = Dir(Chemois & "\*.XLS")
Do While Fichxl <> "" ' si plus de fichier => fin
Workbooks.Open Filename:= _
Chemois & "\" & Fichxl
'"C:\Documents and Settings\JPIERRE\Mes documents\Excel\LEVIER1.xls"
Range("D16:G16").Select ' on select les cellules
Selection.Copy ' on le copie
Windows("Anmois.xls").Activate ' on va sur l'XL centralisateur
Lig = Lig + 1
Range("A" & Lig).Select ' Col A ligne Lig, chemin & fichier
ActiveCell.Value = Chemois & "\" & Fichxl
Range("B" & Lig).Select ' Col B
ActiveSheet.Paste ' on colle les cellules
Windows(Fichxl).Activate ' on revient sur le fcihier lu
ActiveWorkbook.Close ' pour le fermer
Fichxl = Dir ' nom Fichier suivant
Loop
Next M
Next X
======================================================
End sub
Corriger les constantes Chemin, et par F8 faire du pas à pas
pour comprendre et modifier la macro si nécessaire.
Maintenant mon Mail est jeanpierre.rougier@wanadoo.fr
si vous voulez je vous envoie le xl AnMois.XLS
qu'il faudra quand-même modifer pour l'adapter à vos chemins.
Voilà.
|
|
mercredi 3 mai 2006 à 08:17:22 |
Re : macro excel pour récupérer le contenu de plusieurs cellules d'autres feuilles

pierre9393
|
Merci beaucoup
Je vais tester ca au travail aujourd'hui. Si besoin est, je peux mettre
tous les fichier (puisque chaque nom est unique) dans un seul et meme
repertoire, ca permettrais surement de simplifier la macro.
J'essaye deja avec votre solution. Je vous remercie
|
|
mercredi 3 mai 2006 à 22:36:04 |
Re : macro excel pour récupérer le contenu de plusieurs cellules d'autres feuilles

pierre9393
|
Réponse acceptée !
J'ai réecrit ce que vous m'avez donné, sans succes (il ne se passe
rien, aucun message d'erreur, comme si la macro n'était pas du tout
exécutée.
J'ai corrigé un peu ce que vous m'avez donné car en fait la structure des répertoire est celle ci:
par exemple: le chemin vers un fichier de janvier de l'année 2003:
E:\CD\Bilans_Journaliers_Choisy\2003\2003_01
en fait on répete l'année, j'ai donc corriger dans la macro
Ensuite, les cellules qui nous interessent sont les BK45, BL45, BM45
d'une part, BK46, BL46, BM46 de l'autre, BK47.... bref jusqu a 48 soit
12 cellules
Ces cellules sont sur la feuille nommée Présentation (il y a plein de feuilles par classeur).
Cependant rien n'y fait, ce la ne fonctionne pas.Rien ne se passe quand
j'exécute la macro. Faut il placer le repertoire Anmois.xls a un
endroit particulier ?
Ca m'embete, car je vais devoir rendre un rapport d'ici peu. Pourriez-vous m'aider ?
|
|
jeudi 4 mai 2006 à 09:54:10 |
Re : macro excel pour récupérer le contenu de plusieurs cellules d'autres feuilles

JIPERE
|
J'ai modifier un peu la macro, mais il est essentielle de analyser en pas à pas
par Menu: Outils, Macros, macros => Macro1 [Modifier], F8
et de voir (via souris) le contenu des variables pour corriger si nécessaire
et adapter la macro ...
==========================
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 02/05/2006 par ROUGIER Jean-Pierre
' Visualiser et LANCER LA MACRO EN PAS a PAS (F8),
' et promener la souris sur les variables
' pour en voir le contenu, et modifier si nécessaire ...
' Mettre le bon chemin
Dim CheAn, Chemois, Fichxl, T_M(12) As String
Dim T_An(4), X, M, Lig As Integer
' Mise en place des noms dossiers An dans X postes
T_An(1) = 2003: T_An(2) = 2004: T_An(3) = 2005: T_An(4) = 2006
' Vous pouvez traiter An par an sur 4 feuilles et regrouper (copier/coller)
' les 4 feuilles en 1
' Tableau des dossiers Mois (juste l'élément qui varie)
T_M(1) = "01": T_M(2) = "02": T_M(3) = "03": T_M(4) = "04":
T_M(5) = "05": T_M(6) = "06": T_M(7) = "07": T_M(8) = "08":
T_M(9) = "09": T_M(10) = "10": T_M(11) = "11": T_M(12) = "12":
For X = 1 To 4 ' On boucle 4 fois pour 4 ans
' on charge le répertoire d'1 année T_An(X) dans la variable Chemxl
CheAn = "E:\CD\Bilans_Journaliers_Choisy\" & T_An(X) & "\" & T_An(X) & "_"
For M = 1 To 12 ' on va sur 12 dossiers Mois
' en pas à pas, on doit lire le chemin exact du dossier dans chemois
Chemois = CheAn & "\" & T_M(M)
' la commande DIR met le nom du 1er .XLS du dossier chemois\... dans FichXL
Fichxl = Dir(Chemois & "\*.XLS")
Do While Fichxl <> "" ' si plus de fichier => fin
Workbooks.Open Filename:= _
Chemois & "\" & Fichxl
'"C:\Documents and Settings\JPIERRE\Mes documents\Excel\LEVIER1.xls"
'BK45, BL45, BM45
Range("BK45:BM45").Select ' on select/copy 3 cellules lig.45
Selection.Copy
Windows("Anmois.xls").Activate ' on va sur l'XL central à la bonne ligne
Lig = Lig + 1 ' 1 ligne 12 cellules
Range("A" & Lig).Select ' Col A ligne Lig, chemin & fichier
ActiveCell.Value = Chemois & "\" & Fichxl
Range("B" & Lig).Select ' Col B lig.45
ActiveSheet.Paste
Windows(Fichxl).Activate ' on va copier la lig.46
Range("BK46:BM46").Select
Selection.Copy
Windows("Anmois.xls").Activate ' on va sur l'XL central Col E ligne Lig46
Range("E" & Lig).Select
ActiveSheet.Paste
Windows(Fichxl).Activate ' on va copier la lig.47
Range("BK47:BM47").Select
Selection.Copy
Windows("Anmois.xls").Activate ' on va sur l'XL central Col H ligne Lig47
Range("H" & Lig).Select
ActiveSheet.Paste
Windows(Fichxl).Activate ' on va copier la lig.48
Range("BK48:BM48").Select
Selection.Copy
Windows("Anmois.xls").Activate ' on va sur l'XL central Col H ligne Lig48
Range("K" & Lig).Select
ActiveSheet.Paste
Windows(Fichxl).Activate ' on revient sur le fcihier lu
ActiveWorkbook.Close ' pour le fermer
Fichxl = Dir ' nom Fichier suivant
Loop
Next M
' Sauvegarde du tableau chaque fin de dossier mois
' Remplacer le chemin "C:\Documents and Settings\Anmois.xls" par le bon.
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\Anmois.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Next X
' en pas à pas, on peut passer de la macro à la feuille et suivre le travail
' Quand tout va bien, F5 exécute sans pas à pas...
End Sub
|
|
jeudi 4 mai 2006 à 09:57:39 |
Re : macro excel pour récupérer le contenu de plusieurs cellules d'autres feuilles
|
jeudi 4 mai 2006 à 09:57:57 |
Re : macro excel pour récupérer le contenu de plusieurs cellules d'autres feuilles
|
jeudi 4 mai 2006 à 09:57:59 |
Re : macro excel pour récupérer le contenu de plusieurs cellules d'autres feuilles
|
Cette discussion est classée dans : fichier, excel, fichiers, cellules, seule
Répondre à ce message
Sujets en rapport avec ce message
VB6 et des fichiers Excel 97 [ par Sandro ]
Bonjour,Je cherche à ouvrir un fichier Excel 97 avec VB6, pour extraire le contenu de feuilles et de cellules, pour générer un fichier texte avec.Ext-
scinder des cellules excel [ par lebleu ]
j'ai un fichier ckient dans lequel j'ai besoin de scinder la colonne titre+nom+prenom en une colonne titre, une colonne nom et une colonne prenom...je
lire les cellules d'un fichier Excel et les enregistrer dans un tableau, le tout dans une page html [ par Chris ]
Salut,je cree une page HTML et je souhaite pouvoir acceder en VB script a un fichier excel et enregistrer des cellules dans un tableau, dont je me ser
Lire des fichiers Excel par ADO [ par mba ]
Est-il possible de manipuler un fichier excel avec un recordset ADO.Y a-t-il une connexion string pour connecter un fichier Excel ?
Import/export de cellules Excel [ par Chauve ]
Bonjour à tous. Je suis débutant, je cherche à importer le contenu de plusieurs cellules d'une feuille excel vers une autre feuille du même classeur,
Urgent excel/vb [ par CAOVINCE ]
Voila, j'ai 2 fichiers, 1 original et 1 trié (que je modifie) a partir de l'original. Je veux comparer ces 2 fichiers et reecrire le tout dans un 3eme
rendre un fichier excel en lecture seule [ par morinben ]
comment puis je rendre un fichier excel en lecture seule?merci par avance
Recuperation dans plusieurs fichiers d'info pour en faire 1 seule fichier [ par veve ]
Bonjour,Je souhaite recuperer differentes informations dans plusieurs fichiers et en faire une concatenation en 1 seule fichierMerci
Lier des fichiers excel et des feuilles excel [ par Mesacraft ]
Bonjour, tjs dans la construction de mes macros je viens de rencontre un prob pas vraiment sympa.Dans ma première feuille j'historise des données sur
mettre plusieurs fichiers Excel dans le même [ par coco_rine ]
je cherche à enregister des fichiers Excel les uns à la suite des autres. yen a 41, mais il ont les mêmes colonnes (normalement!)j'ai essayer grace à
Livres en rapport
|
Derniers Blogs
[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|