Calcul de plages dynamiques

11somme-mensuelle.xls (30.50 Ko)

Bonjour à tous,

Mon problème est le suivant:

Recalculer automatiquement la somme des cellules d'un mois,

séparées par une cellule vide avant et après la plage.

La plage est dynamique, le nombre de cellules n'est pas fixe.

Le calcul doit intervenir au changement de mois dans la colonne B.

Le fichier joint montre le résultat désiré.

Je suis malheureusement obligé de travailler avec Excel 2003.

Merci d'avance de vos suggestions pour résoudre ce problème.

Bonsoir Michel1942

En E4, mettre la formule

=SI(B5="";SOMMEPROD((MOIS(B$3:B4)=MOIS(B4))*D$3:D4)*1;"")

Recopier vers le bas

Bonjour Michel, Salut Bruno,

Voici une proposition avec une macro nommée calcul :

Sub calcul()

With ActiveSheet
    dl = .Cells(.Rows.Count, 4).End(xlUp).Row
    t = .Range("D1:E" & dl).Value
    if dl < 3 then exit sub
    For i = 3 To UBound(t)
        If t(i, 1) <> "" Then somme = somme + t(i, 1) Else somme = 0
        If .Cells(i + 1, 4).Value = "" Then t(i, 2) = somme Else t(i, 2) = ""
    Next i
    .Cells(1, 4).Resize(dl, 2).Value = t
End With

End Sub

exécutée lors d'un changement sur la colonne B (j'ai pour l'instant gardé toute la colonne car j'ai supposé que ce serait suffisant et que tester les dates ne serait pas nécessaire) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns(2)) Is Nothing Then Call calcul
End Sub

Cdlt,

Merci à tous, la solution de Bruno est parfaite pour moi. Je garde celle de 3GBb pour me familiariser avec VBA.

Amitiés

Rechercher des sujets similaires à "calcul plages dynamiques"