begin process at 2012 02 13 20:39:19
  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

Copier deux cellules dans une cellule EXCEL en vba [ par metek ] Bonjour!J'ai quelques soucis en VBA avec une macro!Je dispose d'un fichier excel que je dois retraité afin d'obtenir un tableau classé!Je souhaite en compteur sur plusieurs fichier et plusieurs onglets [ par funkay91 ] Et oui encore moiJe cherche des commandes qui pourront me permettre de lancé une recherche. Sur plusieurs fichiers et sous plusieurs onglet de excel. macro sur un dossier de fichier excel [ par funkay91 ] je souhaite appliquer ma macro sur l'ensemble des fichiers .xls de mon dossier C'est dire j'ai un fichier exel dans lequel j'aurai ma macro qui une fo VBA Excel - Recherche de fichiers [ par econs ] Bonjour à toutes et tous. Je possède un dossier contenant un certain nombre de fichiers : -   Un fichier Visio    (*.vsd) -   Un fichier Excel    !! URGENT !! Copie de fichier texte à la suite dans excel [ par xpmich ] Bonjour,Je programme sous Microsof visual Basic.Je voudrais grâce à un macro ouvrir dans l'ordre des fichiers textes (de même forme) et les copier à l Vieux fichiers Excel [ par ptigars67 ] Bonjour,Je suis ennuyé avec un fichier qui avait été réalisé avec excel95 et qui ne fonctionne plus avec les versions de excel actuel.Je ne connais ab Identification de fichiers [ par devba77 ] Bonjour, Je me pose depuis pas mal de temps un pb de méthodologie. J'importe dans une base access plusieurs fichiers Excel par un module vba. Ces fich Macro-Excel-VB [ par reggenzi ] Bonjour,j'ai un problème avec excel, j'ai un fichier excel A dont le contenu de cellules équivaut au contenu des autres cellules située dans un autre [VBA Excel] Fichier d'aide [ par tof008 ] Bonjour à tous! J'aurais voulu savoir s'il était possible d'attacher un fichier d'aide à des fichiers Excel. Ceci me serait utile car j'ai crée des ma Exportation de plusieurs fichiers .txt dans différents dossiers vers un fichier Excel [ par xl_squal_lx ] Bonjour,Pouvez vous me dire s'il est possible de récupérer des données se trouvant dans plusieurs fichiers au format txt ( le chemin est le meme il n'


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 1,154 sec (4)

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