Automatiser la consolidation de plusieurs classeurs

Bonjour,

Je ne sais pas si c'est possible mais j'aimerais automatiser la consolidation de plusieurs classeurs.

Chaque collègue remplit, chaque jour, un tableau de statistiques. Chaque classeur porte le nom du collègue qui l'utilise. Le nombre de collègues (et donc de classeurs et de noms de classeurs) varie d'un jour à l'autre.

Chaque jour, les classeurs sont groupés dans un dossier avec la date du jour.

J'ai essayé d'enregistrer une macro mais ça n'a pas marché car ce sont les valeurs utilisées lors de l'enregistrement de la macro qui sont reprises.

Est-ce que vous pensez que c'est possible ?

Merci d'avance.

Bonjour,

est ce qu'il y a une seule feuille dans les classeurs à lire ?

Quel est l'adresse de la plage à lire ?

re,

voici un exemple à adapter,

nécessite d'activer la référence: Microsoft ActiveX Data Objects xx Library

VBE Menu >= Outils >= Reference

Sub Read_File_xlsx()
Dim repertoire As String, Fichier As String, Feuille As String, AddrLire As String
Dim Ligne As Long, oFile As Object

repertoire = "C:\Users\isabelle\Documents\Test3"  'à adapter
Feuille = "Feuil1"      'à adapter
AddrLire = "A1:D10"     'à adapter
Ligne = 1  'les données sont transférées à partir de la ligne 1 sur la feuille active.

Set fso = CreateObject("Scripting.FileSystemObject")
Set sfoFolder = fso.GetFolder(repertoire)

 For Each oFile In sfoFolder.Files
    If Right(oFile, 5) = ".xlsx" Then  'à adapter

        Set cnn = New ADODB.Connection

        '--- Connexion ---
        With cnn
        .Provider = "Microsoft.Jet.OLEDB.12.0"
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
        & oFile & ";Extended Properties=""Excel 12.0;HDR=NO;"""
        .Open
        End With

        '--- récupérer les données --
        Set rs = cnn.Execute("SELECT * FROM [" & Feuille & "$" & AddrLire & "]")
        Range("A" & Ligne).CopyFromRecordset rs

        rs.Close
        Ligne = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1
    End If
 Next
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub

Bonjour,

est ce qu'il y a une seule feuille dans les classeurs à lire ?

Quel est l'adresse de la plage à lire ?

Merci pour ta réponse.

Oui j'ai fait en sorte qu'il n'y ait qu'une seule feuille par classeur.

La plage c'est A3:H3

Je suis pas au travail, là, mais l'adresse finit dans ce style:

Stats clients2019>JANVIER2019>15-01-19>"nom du collègue qui utilise le classeur pr ses stats"

Rechercher des sujets similaires à "automatiser consolidation classeurs"