Somme de plusieurs fichier exel

crucho81 Messages postés 7 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 13 janvier 2010 - 2 oct. 2008 à 19:52
crucho81 Messages postés 7 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 13 janvier 2010 - 5 oct. 2008 à 18:47
Bonjour a tous
Après plusieurs recherche sur des forum, et n'ayant rien trouver, je solicite votre attention.
Pouvez vous m'aider a resoudre mon probleme :
Je souhaite condensé plusieurs fichier en 1 seul

Sélection de plusieurs fichiers excel :     aaa.xls , bbb.xls , ccc.xls ,......

faire une somme de toutes les cellules B3 de chaques fichiers sélectionnés (les classeurs possédant le meme nom : INVENTAIRE )

et mettre cette valeur ( la Somme ) dans un nouveau fichier excel dans la cellule B3

et ainsi de suite jusqu'a B5

J'espere être claire
Si vous avez besoin de + de renseignement n'esitez pas

Merci a vous pour vos réponses

debutant...

2 réponses

cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
2 oct. 2008 à 22:44
Bonjour Crucho81

Si je ne me trompe pas, INVENTAIRE doit être le nom unique des formulaires, pas des classeurs, ceux-ci s'appelant aaa.xls, bbb.xls ...

Je vous propose la solution suivante en VBA, en deux étapes :

- ouvrez tous les classeurs aaa.xls, bbb.xls... et le classeur destination, que j'appelle zzz.xls dans l'exemple ci-dessous. Attention, tout classeur non indispensable doit être fermé, sous peine de fausser les calculs ou de générer une erreur.

- copiez-collez et exécutez le code VBA ci-dessous dans un nouveau module :

Option Explicit
Private Sub sommeDeClasseurs()
Dim w As Workbook, ligne As Integer
With Workbooks("zzz.xls").Worksheets("INVENTAIRE")
' balayer la collection workbooks et attribuer à l'objet w une
' référence à chacun des éléments de la collection
For Each w In Application.Workbooks
' ignorer le classeur zzz.xls
If LCase(w.Name) <> "zzz.xls" Then
' balayer les lignes 3 a 5
For ligne = 3 To 5
' cumuler la cellule B<ligne> du formulaire "INVENTAIRE"
' dans la cellule correspondante du classeur zzz.xls
.Cells(ligne, 2).value = .Cells(ligne, 2).value + _
w.Worksheets("INVENTAIRE").Cells(ligne, 2).value
Next
End If
Next
End With
End Sub

cdlt
0
crucho81 Messages postés 7 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 13 janvier 2010
5 oct. 2008 à 18:47
ca marche impecable ton code
Je te remercie pour ta rapidité et tes compétences
A+
debutant...
0
Rejoignez-nous