Addition de cellules de plusieurs fichiers
Bonjour à tous et toutes,
Débutant sur ce bel outil Excel, j'implore de l'aide pour m'aider à résoudre un problème
Je souhaite additionner les cellules de plusieurs fichiers Excel dans un fichier récap (Dashboard):
J'ai 31 fichiers sources (j'en ai posté 2 pour exemple: client 1 et client 2), ils ont des noms différents mais les onglets à additionner (2 ds chaque fichier: BUP et Valo€) ont exactement la même structure: onglets de nom identique et emplacement des données similaires.
Pour faire simple je cherche additionner les données de Janvier à Mars dans chaque des onglets BUP et Valo€.
J'ai bien démarré avec une formule basique qui consiste à ouvrir tous les fichiers puis sélectionner mes cellules pour les additionner. le pb est qu'excel s'amuse à ouvrir tous les fichiers lors de la maj des données... L'idéal serait de pouvoir mettre à jour les données sans ouverture/enregistrement de chacun des fichiers.
Je ne veux pas profiter de votre aide charitable et n'attend pas forcément une solution toute faite. Je cherche aussi à comprendre et apprendre. J'ai donc mis en pj 3 fichiers (le dashboard et 2 fichiers de données sources). Je me chargerai ensuite de décliner vos conseils avec le reste des fichiers
J'ai bien consulté et essayé quelques codes VBA sur le forum mais impossible à exécuter.
Si besoin d'infos complémentaires pour comprendre ma problématique , n'hésitez pas
Un grand merci par avance !
Matt
Bonjour Matt,
est ce que les 2 plages de cellules sur les fichiers "BUP Client 1.xlsx" sont nommées ?
Bonjour,
je vous propose 2 fonctions perso, j'ai supposé que les plages de cellule sur les fichiers "BUP Client" sont tous nommées, plgBUP et plgValo€
Function SommeExtBUP(fichier, champSomme)
'Microsoft ActiveX 2.8 doit être coché
Dim Cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
chemin = ThisWorkbook.Path & "\" & fichier
chaineConnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & chemin & ";HDR=Yes';"
Cnn.Open chaineConnect
Sql = "SELECT SUM(" & champSomme & ") FROM [plgBUP] "
rs.Open Sql, Cnn
SommeExtBUP = rs(0)
rs.Close
Cnn.Close
End Function
Function SommeExtValo€(fichier, champSomme)
'Microsoft ActiveX 2.8 doit être coché
Dim Cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
chemin = ThisWorkbook.Path & "\" & fichier
chaineConnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & chemin & ";HDR=Yes';"
Cnn.Open chaineConnect
Sql = "SELECT SUM(" & champSomme & ") FROM [plgValo€] "
rs.Open Sql, Cnn
SommeExtValo€ = rs(0)
rs.Close
Cnn.Close
End Function