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
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 SubBonsoir 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).Row28 = 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"))