sommer le contenu de 1000 cellules dans 20 fichiers par macro

boudu

XLDnaute Occasionnel
bonjour au forum
chaque mois je reçois 20 fichiers comportant chacun environ 1000 cellules
les fichiers sont ous formatés de la meme façon, il y a des entetes avec du texte et des nombres dans les autres cellules
je souhaite réaliser un fichier identique aux 20 que je reçois mais qui fait la somme de leur contenu en evitant d'avoir à saisir pour chaque cellule comme je l'ai fait dans l'exemple joint (le chemin est evidemment à modifier)

Merci d'avance
 

Pièces jointes

  • somme.zip
    12 KB · Affichages: 43
  • somme.zip
    12 KB · Affichages: 43
  • somme.zip
    12 KB · Affichages: 41

boudu

XLDnaute Occasionnel
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

Re bonjour Kiki29; le forum
malheureusement nous ne disposons que de la version excel 97 et j'ai droit à un beau message "erreur 430, cette classe d'objets ne gere pas automation" puis quand je clique sur debogage c'est la ligne ShStats.Range("F2").CopyFromRecordset oRqt qui est surlignée
je ne trouve evidemment pas comment contourner cela

à la lecture du code, je crois comprendre qu'il faut saisir les cellules dans un fichier texte, n'est-il pas possible de rendre systematique l'addition de toutes les cellules des feuilles sans avoir à faire cette saisie?
Je pars dans ma version d'un fichier qui est deja une copie conforme des 20 autres et je lance la macro pour aller chercher les contenus et les sommer comme tu as fait avec le bouton "cumul", je voulais donc sommer aussi les totaux deja faits et non pas mettre les formules de total sur la feuille recapitulative
Merci de me dire si tu as une idée pour eviter le blocage avec 97 et bonne journée
 

mromain

XLDnaute Barbatruc
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

bonjour boudu, le fil

je te propose une solution.
par contre, il faut que les autres classeurs aient exactement la même structure.
Code:
Private Sub CommandButton1_Click()
On Error GoTo erreur
Application.ScreenUpdating = False

Dim tableauClasseurs, i As Integer, curCell As Range, tmpWbk As Workbook

' récupérer les classeurs concernés
tableauClasseurs = Application.GetOpenFilename(filefilter:="Fichiers Excel, *.xls; *.xlsx", MultiSelect:=True)

' boucler sur chaque classeur
For i = LBound(tableauClasseurs) To UBound(tableauClasseurs)
    ' ouvrir le classeur
    Set tmpWbk = Application.Workbooks.Open(tableauClasseurs(i))
    
    With ThisWorkbook.Sheets("STATISTIQUES")
        ' boucler sur chaques cellules du classeur
        For Each curCell In tmpWbk.Sheets("STATISTIQUES").UsedRange
            ' si c'est une cellule "numérique"
            If IsNumeric(curCell.Value) And curCell.Value <> vbNullString Then
                'on ajoute la valeur à ce classeur
                .Range(curCell.Address).Value = .Range(curCell.Address).Value + curCell.Value
            End If
        Next curCell
    End With
    
    ' fermer le classeur sans le sauver
    tmpWbk.Close False
Next i

GoTo fin
erreur:
MsgBox "erreur dans la macro"
fin:
Application.ScreenUpdating = True
End Sub
a+
 

Pièces jointes

  • test.zip
    19.5 KB · Affichages: 32
  • test.zip
    19.5 KB · Affichages: 35
  • test.zip
    19.5 KB · Affichages: 31

boudu

XLDnaute Occasionnel
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

re bonjour mromain, kiki29, le forum
ça marche et correspond à ce que je voulais, il faut maintenant que j'automatise l'ouverture, la somme des cellules et la refermeture des 20 fichiers puisque dans l'etat excel me demande chaque fichier un par un
Par defaut je demande aux utilisateurs de nommer les fichiers 1.xls; 2.xls; 3.xls... et de placer ces fichiers dans le meme repertoire unique que le fichier dans lequel je mets le bouton qui execute la macro
En tous cas, merci beaucoup car la solution de kiki29 posait des difficultés avec excel97
Je tente l'adaptation avec mes vrais fichiers et posterai si j'ai d'autres soucis

Bonne fin de journée et merci encore
 

boudu

XLDnaute Occasionnel
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

bonsoir Romain, kiki29, le forum
eh oui, je m'en suis rendu compte apres avoir posté et en réalité c'est mieux comme option parce que ça permettra aux utilisateurs de nommer les fichiers comme ils veulent et de selectionner precisement ce qu'ils veulent donc an fait c'est top

Merci et bonne continuation
 

Discussions similaires

Réponses
26
Affichages
441

Statistiques des forums

Discussions
312 410
Messages
2 088 157
Membres
103 748
dernier inscrit
SnOoPiZz36