récupération données plusieurs fichiers

az'

XLDnaute Nouveau
Bonjour à tous,

Je souhaiterai récupérer dans un seul document des données de plusieurs fichiers (qui ont la même structure) situés dans un seul et même dossier (je précise que ces données doivent être mises les unes après les autres).

Pour cela j'ai cherché un peu, à la fois sur ce forum mais également sur internet, et ai trouvé une macro simple qui me semblait bonne.

Sub recup()
Range("A1").Select 'sélectionner la cellule de début
Chemin = "C:\Documents and Settings\test macro\dossier\" 'saisir le chemin complet du dossier où se trouvent les fichiers
Fichier = Dir(Chemin & "*.xls") ' Premier fichier
Do While Fichier <> ""
Workbooks.Open Filename:=Chemin & Fichier
Range("Nom").Copy
ThisWorkbook.Activate
ActiveSheet.Paste
Windows(Fichier).Activate
Application.CutCopyMode = False
ActiveWorkbook.Close savechanges:=False
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
Fichier = Dir ' Fichier suivant
Loop
End Sub

Malheureusement, cette macro s'intérompt après Range("Nom").Copy sans que j'en comprenne la cause
Le message d'erreur est "erreur d'execution '1004': Erreur définie par l'application ou par l'objet"
la macro semble ouvrir le premier fichier mais stop net.

Pour plus de précision j'ai inséré en pièce jointe le fichier de synthèse dans lequel figure la macro ainsi que 3 fichiers avec les données qui se trouvent dans le chemin : C:\Documents and Settings\test macro\dossier

Merci à la bonne âme qui offrira un peu de ses lumières au débutant que je suis.
 

Pièces jointes

  • Synthèse.xls
    33 KB · Affichages: 161
  • Synthèse.xls
    33 KB · Affichages: 164
  • Synthèse.xls
    33 KB · Affichages: 166
  • 2ABCD.zip
    25.6 KB · Affichages: 87
  • 2ABCD.zip
    25.6 KB · Affichages: 95
  • 2ABCD.zip
    25.6 KB · Affichages: 99
  • 2EFG.zip
    25.5 KB · Affichages: 73
  • 2HIJ.zip
    25.3 KB · Affichages: 79
Dernière édition:

az'

XLDnaute Nouveau
Dernière édition:

damslab

XLDnaute Nouveau
Re : récupération données plusieurs fichiers

Bonjour à tous,
J'ai à peu près un problème similaire:
Je souhaiterai importer dans un seul documents des données qui se trouvent dans plusieurs fichiers (dans un onglet particulier), ces onglets ayant la meme structure. Tous ces fichiers se trouvent dans le même dossier.
Dans ces onglets, je souhaiterai récuperer certaines valeurs texte et nombre (les nombres étant donnés par des formules).

quelqu'un a t-il une idée? merci par avance de vous interresser à mon cas.

Damien.
 

damslab

XLDnaute Nouveau
Re : récupération données plusieurs fichiers

Bon suite à une recherche dans le forum de ce site, j'ai réussi à adapter une macro (merci à celui qui l'a batie) à mes besoins:

La voici:
Private Sub cmdRecupere_Click()
Dim intFile As Integer
Dim strWB As String
Dim strFile As String
Dim lgDerLig As Long

Application.ScreenUpdating = False
Application.EnableEvents = False

' Nom du classeur actuel
strWB = ThisWorkbook.Name

lgDerLig = 2

' Récupération du premier fichier dans le répertoire
strFile = Dir(ThisWorkbook.Path & "\*.xls")

' Boucle du 1er au dernier classeur dans le répertoire
Do While strFile <> ""
' Si le classeur n'est pas le classeur de destination
If strFile <> strWB Then
' Ouvrir le fichier
Workbooks.Open ThisWorkbook.Path & "\" & strFile

' Sélectionner le 1er onglet feuille de saisie
ActiveWorkbook.Worksheets(1).Activate
' Copier la 2me ligne dans le classeur Total
Worksheets(1).Range("C5").Copy Destination:=Workbooks(strWB).Worksheets("Feuil1").Range("A" & lgDerLig)
Worksheets(1).Range("C6").Copy Destination:=Workbooks(strWB).Worksheets("Feuil1").Range("B" & lgDerLig)
Worksheets(1).Range("C84").Copy Destination:=Workbooks(strWB).Worksheets("Feuil1").Range("C" & lgDerLig)
Worksheets(1).Range("C86").Copy Destination:=Workbooks(strWB).Worksheets("Feuil1").Range("D" & lgDerLig)

lgDerLig = lgDerLig + 1

' Fermeture du classeur
Workbooks(strFile).Close
End If

' Classeur suivant
strFile = Dir
Loop

MsgBox "Le traitement des fichiers est terminé.", vbInformation, "Traitement..."

Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


Mon pb: les cellules C84 et C86 sont des nombres (déterminés par des formules). Du coup, que dois-je écrire pour que ce soit un copier / coller valeur et non simplement un copier / coller. En effet, le résultat pour ces deux cellules sur mon fichier destination est #N/A.

Merci

Damslab
 

Discussions similaires

Réponses
4
Affichages
569

Statistiques des forums

Discussions
312 677
Messages
2 090 821
Membres
104 677
dernier inscrit
soufiane12