begin process at 2010 02 09 22:58:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

macro excel pour récupérer le contenu de plusieurs cellules d'autres feuilles


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

1 2

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 à


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales