XL 2021 extraire des informations de plusieurs fichiers

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

arsene

XLDnaute Nouveau
Bonjour,
Pour une association je calcule tous les mois ou tous les deux mois une contribution demandée aux adhérents.
Je pars d'un modèle que je renomme avec la date de création, par exemple "2025-04-contributions" pour avril 2025. Tous les fichiers sont enregistrés dans le même dossier.
Sur une première page sont introduites les dépenses de l'association et sur une seconde les contributions sont calculées.
La contribution d'un adhérent se trouve donc toujours au même emplacement dans le classeur : même page, même cellule.
Je veux obtenir le récapitulatif d'un adhérent sur une année.
C'est assez fastidieux d'ouvrir chaque fichier pour recopier les données, je me demande s'il est possible d'automatiser l'extraction ?
Merci de votre aide.
 
Bonsoir,
Il se pourrait que Power Query (nativement intégré à ta version d'Excel), puisse correspondre à ton besoin.
Si tu pouvais joindre un fichier exemple, exempt de toute donnée confidentielle, on pourrait voir cela..
Bonne soirée
 
Merci pour la réponse.
Voici le problème que je rencontre :
Pour faire un test, j'ai créé trois fichiers sur le bureau : essai-1, essai-2 et essai-3
dans chacun, j'ai placé la valeur 200 en A3 (au format nombre : 200,00)
Dans un autre fichier, j'ai mis la formule : =SOMME('C:\Users\pfw\Desktop\[essai-1.xlsx]Feuil1'!A3:'C:\Users\pfw\Desktop\[essai-3.xlsx]Feuil1'!A3)
Quand je valide cette formule, j'obtiens le message #VALEUR!
Je coince...
 
Bonsoir arsene, djidji59430, Cousinhub,

Je comprends que les contributions des adhérents se trouvent en colonne B de la 2ème feuille des fichiers, les noms étant en colonne A.

Vous pouvez alors utiliser cette macro dans un fichier .xlsm situé dans le même dossier :
VB:
Sub Contribution()
Dim an$, nom, chemin$, fichier$, v As Variant, somme#
an = Application.InputBox("Entrez l'année :")
If Not an Like "####" Then Exit Sub
nom = Application.InputBox("Entrez le nom :")
If nom = False Or nom = "" Then Exit Sub
chemin = ThisWorkbook.Path & "\"
fichier = Dir(chemin)
Application.ScreenUpdating = False
While fichier <> ""
    If Left(fichier, 7) Like an & "-##" Then
        With Workbooks.Open(chemin & fichier).Sheets(2)
            v = Application.VLookup(nom, .Columns(1).Resize(, 2), 2, 0)
            If IsNumeric(v) Then somme = somme + CDbl(v)
            .Parent.Close False
        End With
    End If
    fichier = Dir
Wend
MsgBox "Adhérent " & nom & " : " & somme, , "Contribution année " & an 'exemple de restitution
End Sub
La restitution de la valeur somme peut se faire dans une MsgBox ou dans une cellule.

A+
 

Pièces jointes

Bonjour le forum,

Voici une version avec restitution dans une feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim an As Range, nom As Range, chemin$, fichier$, v As Variant, somme#
Set an = [C4]: Set nom = [D4]
If Intersect(Target, Union(an, nom)) Is Nothing Then Exit Sub
If an <> "" And nom <> "" Then
    chemin = ThisWorkbook.Path & "\"
    fichier = Dir(chemin)
    Application.ScreenUpdating = False
    While fichier <> ""
        If Left(fichier, 7) Like an & "-##" Then
            With Workbooks.Open(chemin & fichier).Sheets(2)
                v = Application.VLookup(nom, .Columns(1).Resize(, 2), 2, 0)
                If IsNumeric(v) Then somme = somme + CDbl(v)
                .Parent.Close False
            End With
        End If
        fichier = Dir
    Wend
End If
Me.Protect "arsene", UserInterfaceOnly:=True 'protection de la feuille
nom(1, 2) = somme 'restitution
End Sub
Renseignez les cellules C4 et D4.

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour