somme de cellules sur différentes feuilles

clav

XLDnaute Nouveau
Bonjour,

J'ai un classeur avec un nombre variable de feuille. Je souhaiterais faire la somme de toutes les cellules D1 des feuilles dont le nom est composé de 4 chiffres (ex : 1234) et l'afficher dans une autre feuille.
Je ne sais pas a l'avance combien de feuille il y aura, mais je sais que je veux additionner toutes les valeurs en D1 de toutes les feuilles dont le nom est composé de 4 chiffres.

Une solution?
Merci

Clav
 

fredouf

XLDnaute Nouveau
Re : somme de cellules sur différentes feuilles

Bonjour,

avec "result" comme nom de feuille où apparait le résultat :

Sub Macro1()
Dim Somme As Long
Dim Ctr As Integer
Somme = 0
For Ctr = 1 To Sheets.Count
If (Sheets(Ctr).Name > 1000) And (Sheets(Ctr).Name < 9999) Then
Sheets(Ctr).Select
Somme = Somme + ActiveSheet.Range("D1").Value
End If
Next
Sheets("Result").Select
ActiveSheet.Range("A1").Value = Somme
End Sub

Et voilà,

Cordialement
Frédéric
 

gwenoul

XLDnaute Nouveau
Re : somme de cellules sur différentes feuilles

Merci beaucoup ! Cela correspondait également à ce que je souhaitais faire !

J'aimerais également (en utilisant le même exemple que précédemment) par exemple additionner tous les valeurs de D1 en A1 sur la feuille "result", tous les valeurs de D2 en A2, tous les valeurs de D3 en A3, etc. jusque 10.

J'ai essayé de modifier le code VBA en créant en indice qui s'incrémente de 1 à 10 mais je ne suis pas parvenu à faire ce que je voulais. Quelqu'un peut-il me m'aider ?

Merci d'avance.
 

vbacrumble

XLDnaute Accro
Re : somme de cellules sur différentes feuilles

Bonjour


Une autre solution avec Like

Code:
Sub somme4()
Dim i
Dim m
For i = 1 To Sheets.Count
If Sheets(i).Name Like "####" Then
m = m + Sheets(i).Range("D1")
End If
Next i
Sheets("resultat").Range("A1") = m
End Sub

a+
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : somme de cellules sur différentes feuilles

Bonjour

=sommeOnglet(D1)

Code:
Function SommeOnglet(c As Range)
 Application.Volatile
 t = 0
 For s = 1 To Sheets.Count
   If Val(Sheets(s).Name) > 0 Then
     t = t + Sheets(s).Range(c.Address)
   End If
 Next s
 SommeOnglet = t
End Function

JB
 

Pièces jointes

  • FonctionSommeOngletNum.xls
    33 KB · Affichages: 479

Discussions similaires

Statistiques des forums

Discussions
312 499
Messages
2 089 000
Membres
104 002
dernier inscrit
SkrauzTTV