XL 2016 Récupérer données de différents fichiers Excel et rappatrier dans 1 seul fichier

LAPIN-53

XLDnaute Nouveau
Bonjour,

Je voudrais savoir s'il est possible créer un code permettant de récupérer quelques données contenues dans plusieurs fichiers excel et les rapatrier rapidement dans un fichier récapitulatif.

Mon exemple est le suivant : j'ai une multitude de fichier nommer maquette_n°vendeur. Lorsque le vendeur a complété son fichier il me le retourne nommer ainsi : 2023_T1_n°vendeur (puis 2023_T2_n°vendeur ...) Je dois récupérer le montants correspondant à la cellule F34 (total prime 2) sachant que cette cellule peut changer de ligne si le vendeur ajoute plus ou moins de vente.

Ce montant doit ensuite être reporté dans mon fichier récap en colonne J, en face du bon n° de vendeur et en ajoutant le trimestre concerné.

Je peux créer un répertoire pour chaque trimestre et/ou année si cela aide.

Merci d'avance si quelqu'un a déjà pu créer ce genre de code et me le partager.

Bonne journée
 

Pièces jointes

  • Fichier_recap_P2.xlsx
    13.9 KB · Affichages: 7
  • Maquette_12345.xlsx
    14.2 KB · Affichages: 12
Solution
Bonjour Lapin, Fanfan, Phil,
Comme c'est fait ... autant livrer. Ca pourra servir au moins à nos lecteurs, ça donne au moins l'impression de ne pas avoir perdu son temps pour rien. :rolleyes:
Un essai en PJ avec :
VB:
Sub BoucleFichiers()
    Dim Chemin$, Fichier$, Ligne%, Trimestre, Colonne%, Numéro%, Prime, LignePrime%
    Application.ScreenUpdating = False                                  ' Ecran figé
    Chemin = ThisWorkbook.Path & "\"                                    'Tous les fichiers sont dans le même dossier
    Fichier = Dir(Chemin & "*.xls*")                                    'Boucle sur tous les fichiers xls du répertoire.
    Do While Len(Fichier) > 0                                           ' Pour tous les fichiers...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Lapin, Fanfan, Phil,
Comme c'est fait ... autant livrer. Ca pourra servir au moins à nos lecteurs, ça donne au moins l'impression de ne pas avoir perdu son temps pour rien. :rolleyes:
Un essai en PJ avec :
VB:
Sub BoucleFichiers()
    Dim Chemin$, Fichier$, Ligne%, Trimestre, Colonne%, Numéro%, Prime, LignePrime%
    Application.ScreenUpdating = False                                  ' Ecran figé
    Chemin = ThisWorkbook.Path & "\"                                    'Tous les fichiers sont dans le même dossier
    Fichier = Dir(Chemin & "*.xls*")                                    'Boucle sur tous les fichiers xls du répertoire.
    Do While Len(Fichier) > 0                                           ' Pour tous les fichiers
        If Left(Fichier, 13) <> "Fichier_recap" Then                    ' Sauf ce fichier, Nom à adapter
            Workbooks.Open Chemin & Fichier                             ' Ouvrir fichier
            Trimestre = Sheets("Fiche").[C14]                           ' Lire Trimestre
            Colonne = CInt(Right(Trimestre, 1)) + 3                     ' Choix colonne trimestre où écrire
            LignePrime = Application.Match("TOTAL Prime 2", Sheets("Fiche").[E:E], 0) '  Cherche ligne Prime 2
            Prime = Sheets("Fiche").Cells(LignePrime, "F")              ' Lit la prime
            ActiveWorkbook.Close Savechanges:=False                     ' Ferme le fichier
            Numéro = CInt(Right(Split(Fichier, ".")(0), 5))             ' Extrait le Numéro
            Ligne = Application.Match(Numéro, [C:C], 0)                 ' Ligne Numéro où écrire
            Cells(Ligne, Colonne) = Prime                               ' Ecriture valeur trimestre
        End If
        Fichier = Dir()                                                 ' Fichier suivant
    Loop
End Sub
Tous les fichiers doivent être dans le même dossier.
 

Pièces jointes

  • Fichier_recap_P2.xlsm
    22.6 KB · Affichages: 12

LAPIN-53

XLDnaute Nouveau
Bonjour Lapin, Fanfan, Phil,
Comme c'est fait ... autant livrer. Ca pourra servir au moins à nos lecteurs, ça donne au moins l'impression de ne pas avoir perdu son temps pour rien. :rolleyes:
Un essai en PJ avec :
VB:
Sub BoucleFichiers()
    Dim Chemin$, Fichier$, Ligne%, Trimestre, Colonne%, Numéro%, Prime, LignePrime%
    Application.ScreenUpdating = False                                  ' Ecran figé
    Chemin = ThisWorkbook.Path & "\"                                    'Tous les fichiers sont dans le même dossier
    Fichier = Dir(Chemin & "*.xls*")                                    'Boucle sur tous les fichiers xls du répertoire.
    Do While Len(Fichier) > 0                                           ' Pour tous les fichiers
        If Left(Fichier, 13) <> "Fichier_recap" Then                    ' Sauf ce fichier, Nom à adapter
            Workbooks.Open Chemin & Fichier                             ' Ouvrir fichier
            Trimestre = Sheets("Fiche").[C14]                           ' Lire Trimestre
            Colonne = CInt(Right(Trimestre, 1)) + 3                     ' Choix colonne trimestre où écrire
            LignePrime = Application.Match("TOTAL Prime 2", Sheets("Fiche").[E:E], 0) '  Cherche ligne Prime 2
            Prime = Sheets("Fiche").Cells(LignePrime, "F")              ' Lit la prime
            ActiveWorkbook.Close Savechanges:=False                     ' Ferme le fichier
            Numéro = CInt(Right(Split(Fichier, ".")(0), 5))             ' Extrait le Numéro
            Ligne = Application.Match(Numéro, [C:C], 0)                 ' Ligne Numéro où écrire
            Cells(Ligne, Colonne) = Prime                               ' Ecriture valeur trimestre
        End If
        Fichier = Dir()                                                 ' Fichier suivant
    Loop
End Sub
Tous les fichiers doivent être dans le même dossier.
Merci beaucoup pour votre aide, quelques ajustements pour coller à mes fichier mais merci beaucoup pour votre aide.
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 244
Membres
103 162
dernier inscrit
fcfg