Fichier synthèse de plusieurs fichiers Excel -copie cellule

Bonjour,

Je sollicite votre aide pour une macro vba pour créer un nouveau fichier de synthèse à partir de plusieurs fichiers excel (copie des cellules bien définies dans un tableau de synthèse). En effet j'ai plusieurs fichiers identiques qui se trouvent dans le dossier donnees. La structure des fichiers est identique. Ces fichiers n'ont pas le même nom.

Sur chaque fichier je souhaiterai récupérer 4 cellules différentes sur deux onglets différents

Feuil1 (A10 et J10)

Feuil 2 (B4 et B5)

et je souhaite à la fin regrouper les éléments dans un nouveau fichier qui sera crée et qui s'appellera Recap.xls et qui aura les éléments suivants

ENTETE1, ENTETE2, ENTETE3, ENTETE4
Contenu (A10) fichier 1, Contenu (J10) fichier 1, contenu (B4) fichier 1, Contenu (B5) fichier 1
Contenu (A10) fichier 2, Contenu (J10) fichier 2, contenu (B4) fichier 2, Contenu (B5) fichier 2
.
.
.
Contenu (A10) fichier n, Contenu (J10) fichier n, contenu (B4) fichier n, Contenu (B5) fichier n 

Votre aide me sera d'un très grand secours.

Merci

Un peu d'aide sur ce sujet...

Bonjour papis

Ci-joint un essai.

La macro est attachée au fichier Récup qu'il faut ouvrir.

Elle se lance en cliquant sur le bouton bleu et ouvre une boite de dialogue qui permet de sélectionner, avec un choix multiple, les fichiers sur lesquels se trouvent les données à récupérer.

Ces fichiers s'ouvrent puis se ferment les uns après les autres.

Cela te convient-il ?

A te lire

Bye

172fichier2.xlsx (8.02 Ko)
196fichier1.xlsx (8.00 Ko)
321recap.xlsm (16.77 Ko)

Bonsoir,

Une autre méthode à mettre dans un module de feuille.

Référence Microsoft Scripting Runtime à activer.

Scan ici tous les fichiers du dossier.

Option Explicit

Sub test()
Dim FSO As FileSystemObject
Dim aFile As File
Dim Wb As Workbook
Dim lRow%
Dim LeFolder As Folder
  Set FSO = New FileSystemObject
  Set LeFolder = FSO.GetFolder("C:\Recap") 'A modifier
    lRow = Me.Range("A" & Rows.Count).End(xlUp).Row + 1
    Application.ScreenUpdating = False
    For Each aFile In LeFolder.Files
      Set Wb = Workbooks.Open(aFile.Path)
      Me.Range("A" & lRow) = Wb.Sheets(1).Range("A10")
      Me.Range("B" & lRow) = Wb.Sheets(1).Range("J10")
      Me.Range("C" & lRow).Resize(1, 2) = Wb.Sheets(2).Range("B4").Resize(1, 2).Value
      Wb.Close
      lRow = lRow + 1
    Next
  Set Wb = Nothing
  Set LeFolder = Nothing
  Set FSO = Nothing
End Sub

Cdt,

Darzou

Bonjour gmb,

Merci beaucoup pour ce retour. Je commençais à desespérer . Le programme fonctionne correctement. Par contre je souhaite sélectionner tous les fichiers contenus dans un dossier nommé DATA et non choisir fichier par fichier. Je souhaite aussi créer un nouveau fichier séparé recap.xls différent du fichier où se trouve la macro avec l'entête: ENTETE1, ENTETE2, ENTETE3, ENTETE4. Si le fichier existe déjà il est supprimé et un nouveau est crée. Le fichier doit être prêt à être importé dans une base ACCESS.

Merci de ton aide.

Papis

gmb a écrit :

Bonjour papis

Ci-joint un essai.

La macro est attachée au fichier Récup qu'il faut ouvrir.

Elle se lance en cliquant sur le bouton bleu et ouvre une boite de dialogue qui permet de sélectionner, avec un choix multiple, les fichiers sur lesquels se trouvent les données à récupérer.

Ces fichiers s'ouvrent puis se ferment les uns après les autres.

Cela te convient-il ?

A te lire

Bye

papis a écrit :

Bonjour gmb,

Merci beaucoup pour ce retour. [...]

Merci de ton aide.

Papis

Bien qu'incomplète compte tenu de vos précisions, je pense qu'il eut été de rigueur ne serait ce que de saluer un internaute se penchant sur votre problème.

Darzou

Bonjour papis

Une petite remarque pour commencer : dans la macro envoyée hier, il ne faut pas choisir fichier par fichier mais tous les fichiers d'un coup, en faisant glisser la souris avec le doigt enfoncé.

Ci-joint un nouvel essai.

Tous les fichiers sources, de "Fichier 1" à "Fichier n" doivent se trouver, comme tu le demandes, dans un même dossier que tu peux appeler comme bon te semble.

Tu dois par contre mettre aussi dans ce dossier le fichier qui contient la macro et que j'ai appelé "Macro-Récap".

Ce fichier ne contient que le bouton de lancement sur sa première feuille.

Lorsque la macro a fini son travail, elle laisse ouvert le fichier "Récap" qu'elle vient de créer et d'enregistrer dans le même dossier de départ au format ".xls" comme demandé.

S'il y avait déjà un dossier appelé "Récap", il à été écrasé.

Cela te convient-il ?

A te lire

Bye

265macro-recap.xlsm (18.16 Ko)

merci beaucoup pour cette contribution. Le programme fonctionne aussi

Darzou a écrit :

Bonsoir,

Une autre méthode à mettre dans un module de feuille.

Référence Microsoft Scripting Runtime à activer.

Scan ici tous les fichiers du dossier.

Option Explicit

Sub test()
Dim FSO As FileSystemObject
Dim aFile As File
Dim Wb As Workbook
Dim lRow%
Dim LeFolder As Folder
  Set FSO = New FileSystemObject
  Set LeFolder = FSO.GetFolder("C:\Recap") 'A modifier
    lRow = Me.Range("A" & Rows.Count).End(xlUp).Row + 1
    Application.ScreenUpdating = False
    For Each aFile In LeFolder.Files
      Set Wb = Workbooks.Open(aFile.Path)
      Me.Range("A" & lRow) = Wb.Sheets(1).Range("A10")
      Me.Range("B" & lRow) = Wb.Sheets(1).Range("J10")
      Me.Range("C" & lRow).Resize(1, 2) = Wb.Sheets(2).Range("B4").Resize(1, 2).Value
      Wb.Close
      lRow = lRow + 1
    Next
  Set Wb = Nothing
  Set LeFolder = Nothing
  Set FSO = Nothing
End Sub

Cdt,

Darzou

Bonjour gmb

Cela correspond exactement à ce que je voulais. J'ai modifié une ligne sur le lien des fichiers qui étaient en erreur.

MERCI BEAUCOUP

gmb a écrit :

Bonjour papis

Une petite remarque pour commencer : dans la macro envoyée hier, il ne faut pas choisir fichier par fichier mais tous les fichiers d'un coup, en faisant glisser la souris avec le doigt enfoncé.

Ci-joint un nouvel essai.

Tous les fichiers sources, de "Fichier 1" à "Fichier n" doivent se trouver, comme tu le demandes, dans un même dossier que tu peux appeler comme bon te semble.

Tu dois par contre mettre aussi dans ce dossier le fichier qui contient la macro et que j'ai appelé "Macro-Récap".

Ce fichier ne contient que le bouton de lancement sur sa première feuille.

Lorsque la macro a fini son travail, elle laisse ouvert le fichier "Récap" qu'elle vient de créer et d'enregistrer dans le même dossier de départ au format ".xls" comme demandé.

S'il y avait déjà un dossier appelé "Récap", il à été écrasé.

Cela te convient-il ?

A te lire

Bye

Rechercher des sujets similaires à "fichier synthese fichiers copie"