Calcul somme de colonne
Résolu
max850
Messages postés
304
Date d'inscription
Statut
Membre
Dernière intervention
-
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Calcul somme de colonne
- Formule somme excel colonne - Guide
- Déplacer colonne excel - Guide
- Trier colonne excel - Guide
- Calcul moyenne excel - Guide
- Colonne word - Guide
4 réponses
Bonjour à tous,
Tu peux simplifier ta macro ainsi
Tu peux simplifier ta macro ainsi
Sub somme() Dim col As Integer, lastRow As Long For col = 3 To 7 'On boucle sur les colonnes lastRow = Cells(Rows.Count, col).End(xlUp).Row 'on récupère la dernière ligne Cells(4, col).Value = Application.Sum(Cells(5, col).Resize(lastRow, 1)) Next End Sub
Salut,
une solution :
--
une solution :
Sub somme() For col = 3 To 7 'On boucle sur les colonnes lastRow = Cells(5, col).End(xlDown).Row 'on récupère la dernière ligne Cells(4, col).FormulaR1C1 = "=SUM(R[1]C:R[" & (lastRow - 4) & "]C)" 'On applique la formule selon le nombre de lignes dans la colonne Next End Sub
--
mrjenkins je crois savoir d'ou vient le problème.
en fait j'ai une feuille sur laquelle les sommes sont calculées avec somme(index.....)
que je copie.
lorsque les calculs sont refaits sur la copie sur la ligne 4 je clique sur "mettre à jour la formule pour inclure les cellule adjacentes" et ta formule magique fonctionne parfaitement.
Lorsque je lance ma procédure de copie je dois sans doute désactiver cette ancienne formule
Mais alors comment puis je la désactiver par un code vba ?
merci
en fait j'ai une feuille sur laquelle les sommes sont calculées avec somme(index.....)
que je copie.
lorsque les calculs sont refaits sur la copie sur la ligne 4 je clique sur "mettre à jour la formule pour inclure les cellule adjacentes" et ta formule magique fonctionne parfaitement.
Lorsque je lance ma procédure de copie je dois sans doute désactiver cette ancienne formule
Mais alors comment puis je la désactiver par un code vba ?
merci
Si j'ai bien compris, tu ne veux pas avoir une formule mais le résultat dans les cases C4, D4.. ?
Si c'est ça, il suffit de faire :
Si c'est ça, il suffit de faire :
Sub somme() For col = 3 To 7 'On boucle sur les colonnes lastRow = Cells(5, col).End(xlDown).Row 'on récupère la dernière ligne somme = 0 for r = 5 to lastRow somme = somme + cells(r, col).value next Cells(4, col).value= somme Next End Sub
C'est à cause du lastRow : si une colonne est vide, il va aller jusqu'à la fin de la page.
Essaye ça :
Essaye ça :
Sub somme() Dim col As Integer, r As Long, somme As Integer, lastRow As Long For col = 3 To 7 'On boucle sur les colonnes If Cells(5, col).Value <> "" Then lastRow = Cells(5, col).End(xlDown).Row 'on récupère la dernière ligne somme = 0 For r = 5 To lastRow somme = somme + Cells(r, col).Value Next Cells(4, col).Value = somme Else Cells(4, col).Value = 0 End If Next End Sub