Calcul somme de colonne
Résolu/Fermé
max850
Messages postés
304
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
-
23 mars 2017 à 15:49
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 24 mars 2017 à 18:42
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 24 mars 2017 à 18:42
A voir également:
- Calcul somme de colonne
- Formule somme excel colonne - Guide
- Déplacer une colonne excel - Guide
- Calcul moyenne excel - Guide
- Trier colonne excel - Guide
- Somme si couleur - Guide
4 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
24 mars 2017 à 11:41
24 mars 2017 à 11:41
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
mrjenkins
Messages postés
580
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2018
102
23 mars 2017 à 15:58
23 mars 2017 à 15:58
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
--
max850
Messages postés
304
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
3
23 mars 2017 à 18:18
23 mars 2017 à 18:18
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
mrjenkins
Messages postés
580
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2018
102
24 mars 2017 à 08:25
24 mars 2017 à 08:25
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
max850
Messages postés
304
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
3
>
mrjenkins
Messages postés
580
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2018
24 mars 2017 à 10:23
24 mars 2017 à 10:23
Bonjour mrkenkins
oui c'est cela : résultat dans les cases c4....
j'ai déclaré col et r en integer
et j'obtiens un code erreur 6 dépassement de capacité au niveau de
for r = 5 to lasrow
j'ai déclaré en long et c'est la même chose
oui c'est cela : résultat dans les cases c4....
j'ai déclaré col et r en integer
et j'obtiens un code erreur 6 dépassement de capacité au niveau de
for r = 5 to lasrow
j'ai déclaré en long et c'est la même chose
mrjenkins
Messages postés
580
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2018
102
24 mars 2017 à 10:30
24 mars 2017 à 10:30
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
max850
Messages postés
304
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
3
>
mrjenkins
Messages postés
580
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2018
Modifié le 24 mars 2017 à 11:45
Modifié le 24 mars 2017 à 11:45
cette fois elle s'arrête à la première ligne blanche rencontrée dans les colonnes.Si dans la colonne E j'ai des données en E6, E7 et ensuite E9 et que les données dans les autres colonnes commencent sur la ligne 10 je n'aurais la somme que de E6, E7
max850
Messages postés
304
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
3
23 mars 2017 à 16:45
23 mars 2017 à 16:45
bonsoir mrjenkins
la formule fonctionne sauf qu'elle me donne la somme de la dernière ligne de chaque colonne mais pas la somme de toutes les lignes jusqu'à la dernière de chaque colonne
la formule fonctionne sauf qu'elle me donne la somme de la dernière ligne de chaque colonne mais pas la somme de toutes les lignes jusqu'à la dernière de chaque colonne
max850
Messages postés
304
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
4 janvier 2020
3
24 mars 2017 à 13:10
24 mars 2017 à 13:10
Bonjour jbinforme
La simplification fonctionne parfaitement
merci
La simplification fonctionne parfaitement
merci
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
24 mars 2017 à 18:42
24 mars 2017 à 18:42
Bonjour max850 et merci du retour.