VBA Somme

Bonsoir à tous,

J'ai un fichier excel qui suit des temps passés sur différents dossiers en fonction d'un critère que j'appelle année. J'ai une feuille modèle que je duplique tous les mois.

J'ai créé un onglet avec la liste de ces dossiers ainsi qu'une macro dans le but de suivre ces temps sur une seule feuille.

En D2 de celle-ci, j'aimerais la somme de toutes les cellules I4 de toutes les autres feuilles (sauf Dossiers et Modele), en sachant que je risque de rajouter des feuilles tous les mois.

J'aimerais que cela se poursuive sur les lignes suivantes, c'est à dire en D3 = la somme de toutes les cellules I5 etc.

Mon problème est le suivant : ma macro ne fonctionne que sur la première ligne (le 1er dossier), après plusieurs tentatives, je ne trouve pas comment résoudre ce problème, soit la somme ne se fait plus (=0), soit cela n'affiche rien. Je désespère.

Que doit-je rajouter pour que le code fonctionne jusqu'à la fin de ma liste de dossiers ?

Pour raison de confidentialité, j'ai recréé le modèle type de mon fichier, et vous le joint. Si quelqu'un peut m'aider, ce serait super! Merci

6calcul-temps.xltm (35.91 Ko)

Bonjour Maurine et bienvenue sur le forum,

voici un exemple,

Sub calcultps2018()
Dim somme As Integer
Dim ws As Worksheet
Dim i As Long

somme = 0

For i = 2 To Sheets("Dossiers").Cells(Rows.Count, "C").End(xlUp).Row
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> "Dossiers" And ws.Name <> "MODELE" Then

            If Not IsEmpty(ws.Cells(i + 2, "I")) Then
                somme = somme + Application.WorksheetFunction.Sum(ws.Cells(i + 2, "I"))
            End If

        End If
    Next ws

    Sheets("DOSSIERS").Range("D" & i) = somme
    somme = 0
Next i
End Sub

Bonsoir i20100, Merci!

Merci ! Depuis le temps que je cherchais !!

Peux-tu m'expliquer rapidement le code ? Que je puisses progresser par la suite

Bonsoir i20100, Merci!

Merci ! Depuis le temps que je cherchais !!

Peux-tu m'expliquer rapidement le code ? Que je puisses progresser par la suite

merci Maurine pour ce retour,

le code est sensiblement pareil au tien,

j'ai juste ajouté un boucle sur la plage "Dossiers!C2:C28"

pour définir la fin de cette boucle qui commence à la ligne 2

For i = 2 To Sheets("Dossiers").Cells(Rows.Count, "C").End(xlUp).Row

28 = Sheets("Dossiers").Cells(Rows.Count, "C").End(xlUp).Row

par la suite additionner les cellules 2 ligne + bas donc i + 2 de la colonne "I" des différents onglets ws

somme = somme + Application.WorksheetFunction.Sum(ws.Cells(i + 2, "I"))

Rechercher des sujets similaires à "vba somme"