Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Somme, vers le haut jusqu'a cellule vide en relatif

9 réponses
Avatar
DC
Bonjour à tous,....................Excel 2000 sous XP

Merci de me lire...........Bonne journée...!!

J'aimerais avec une macro, pouvoir éxécuter "une somme" en partant de la
cellule vide au dessus du curseur, jusqu'a la prochaine cellule vide, un peu
comme, avec la somme automatique de la barre d'outils, qui elle reste en
absolu dans une macro,

Et ceci en relatif, car je n'est pas toujour le même nombre de cellules
pleines, çà peut aller de 1 à 25 voir même plus, mais je ne peut pas
dépasser de plus de 2 cellules la dernière cellule pleine, pour la zone de
calcul,.........Merci d'y penser...!!

Salutations!.........Merci d'avance.........de votre aide...!!......DC

9 réponses

Avatar
Jacky
Bonsoir,
Si j'ai bien compris ceci, peut-être
'---------
Sub jj()
col = Mid(Selection.Address, 2, InStr(2, Selection.Address, "$") - 2)
derlg = Sheets("feuil1").Range(col & 65536).End(3).Row
For i = ActiveCell.Row - 1 To 1 Step -1
If Range(col & i) = "" Then Exit For
total = total + Range(col & i).Value
Next
ActiveCell = total
MsgBox total
End Sub
'-----------
Salutations
JJ



"DC" a écrit dans le message de
news:439edd0c$0$20169$
Bonjour à tous,....................Excel 2000 sous XP

Merci de me lire...........Bonne journée...!!

J'aimerais avec une macro, pouvoir éxécuter "une somme" en partant de la
cellule vide au dessus du curseur, jusqu'a la prochaine cellule vide, un
peu

comme, avec la somme automatique de la barre d'outils, qui elle reste en
absolu dans une macro,

Et ceci en relatif, car je n'est pas toujour le même nombre de cellules
pleines, çà peut aller de 1 à 25 voir même plus, mais je ne peut pas
dépasser de plus de 2 cellules la dernière cellule pleine, pour la zone de
calcul,.........Merci d'y penser...!!

Salutations!.........Merci d'avance.........de votre aide...!!......DC




Avatar
Daniel
Bonjour.
La macro suivante est valable pour la colonne A. A modifier en conséquence.

Sub test()
Dim i As Long, Total As Double
i = 1
' valable pour la colonne A
Do While ActiveCell.Offset(-i, 0) <> "" And ActiveCell.Offset(-i,
0).Address <> "$A$1"
If IsNumeric(ActiveCell.Offset(-i, 0)) Then
Total = Total + ActiveCell.Offset(-i, 0).Value
End If
i = i + 1
Loop
MsgBox Total
End Sub

Cordialement.
Daniel
"DC" a écrit dans le message de news:
439edd0c$0$20169$
Bonjour à tous,....................Excel 2000 sous XP

Merci de me lire...........Bonne journée...!!

J'aimerais avec une macro, pouvoir éxécuter "une somme" en partant de la
cellule vide au dessus du curseur, jusqu'a la prochaine cellule vide, un
peu comme, avec la somme automatique de la barre d'outils, qui elle reste
en absolu dans une macro,

Et ceci en relatif, car je n'est pas toujour le même nombre de cellules
pleines, çà peut aller de 1 à 25 voir même plus, mais je ne peut pas
dépasser de plus de 2 cellules la dernière cellule pleine, pour la zone de
calcul,.........Merci d'y penser...!!

Salutations!.........Merci d'avance.........de votre aide...!!......DC



Avatar
isabelle
bonjour DC,

Sub Macro1()
Selection.CurrentRegion.Select
prmL = Selection.CurrentRegion.Item(1).Row
derL = Selection.Areas(Selection.Areas.Count)(Selection.Areas(Selection.Areas.Count).Count).Row
LaSomme = Application.Sum(Range(Cells(prmL, ActiveCell.Column), Cells(derL, ActiveCell.Column)))
End Sub

isabelle

Bonjour à tous,....................Excel 2000 sous XP

Merci de me lire...........Bonne journée...!!

J'aimerais avec une macro, pouvoir éxécuter "une somme" en partant de la
cellule vide au dessus du curseur, jusqu'a la prochaine cellule vide, un peu
comme, avec la somme automatique de la barre d'outils, qui elle reste en
absolu dans une macro,

Et ceci en relatif, car je n'est pas toujour le même nombre de cellules
pleines, çà peut aller de 1 à 25 voir même plus, mais je ne peut pas
dépasser de plus de 2 cellules la dernière cellule pleine, pour la zone de
calcul,.........Merci d'y penser...!!

Salutations!.........Merci d'avance.........de votre aide...!!......DC




Avatar
DC
Bonsoir à tous.................Bonsoir Jacky - Daniel - isabelle,

Merci de vos réponses.............Bonne soirée,

Les 3 solutions réagissent, mais pas comme je le souhaiterais, je me suis
certainement très mal expliqué,

Dans la cellule où se trouve le curseur, il me faudrait une formule
indiquant le résultat du calcul jusqu' la première cellule vide vers le
haut,

Jacky et daniel, donnent à peut prés la même chose, avec la lecture du
résultat dans une fenêtre MsgBox, sauf que Jacky en plus, inscrit la somme
dans la cellule du curseur ( mais ce n'est pas le résultat d'une formule )
je voudrais avec F2, ou un double clic, pouvoir vérifier la correspondance
de la formule,

Quand à isabelle, j' ai dût vraiment...très....très...mal m'expliquer...
Mais bon......Toutes mes excuses...........Merci à tous les trois...!!

Salutations!...........Un grand Merci...!!.................DC

"isabelle" a écrit dans le message de news:
%
bonjour DC,

Sub Macro1()
Selection.CurrentRegion.Select
prmL = Selection.CurrentRegion.Item(1).Row
derL =
Selection.Areas(Selection.Areas.Count)(Selection.Areas(Selection.Areas.Count).Count).Row
LaSomme = Application.Sum(Range(Cells(prmL, ActiveCell.Column),
Cells(derL, ActiveCell.Column)))
End Sub

isabelle

Bonjour à tous,....................Excel 2000 sous XP

Merci de me lire...........Bonne journée...!!

J'aimerais avec une macro, pouvoir éxécuter "une somme" en partant de la
cellule vide au dessus du curseur, jusqu'a la prochaine cellule vide, un
peu comme, avec la somme automatique de la barre d'outils, qui elle reste
en absolu dans une macro,

Et ceci en relatif, car je n'est pas toujour le même nombre de cellules
pleines, çà peut aller de 1 à 25 voir même plus, mais je ne peut pas
dépasser de plus de 2 cellules la dernière cellule pleine, pour la zone
de calcul,.........Merci d'y penser...!!

Salutations!.........Merci d'avance.........de votre aide...!!......DC




Avatar
Daniel
Alors, ça, peut-être :

Sub test3()
Dim i As Long, Total As Double, Adresse1 As String, Adresse2 As String
i = 1
' valable pour la colonne A
Adresse1 = ActiveCell.Offset(-i, 0).Address
Do While ActiveCell.Offset(-i, 0) <> "" And ActiveCell.Offset(-i,
0).Address <> "$A$1"
i = i + 1
Loop
Adresse2 = ActiveCell.Offset(-i, 0).Address
ActiveCell.Formula = "=sum(" & Adresse1 & ":" & Adresse2 & ")"
End Sub

Daniel
"DC" a écrit dans le message de news:
439f08a0$0$18311$
Bonsoir à tous.................Bonsoir Jacky - Daniel - isabelle,

Merci de vos réponses.............Bonne soirée,

Les 3 solutions réagissent, mais pas comme je le souhaiterais, je me suis
certainement très mal expliqué,

Dans la cellule où se trouve le curseur, il me faudrait une formule
indiquant le résultat du calcul jusqu' la première cellule vide vers le
haut,

Jacky et daniel, donnent à peut prés la même chose, avec la lecture du
résultat dans une fenêtre MsgBox, sauf que Jacky en plus, inscrit la somme
dans la cellule du curseur ( mais ce n'est pas le résultat d'une formule )
je voudrais avec F2, ou un double clic, pouvoir vérifier la correspondance
de la formule,

Quand à isabelle, j' ai dût vraiment...très....très...mal m'expliquer...
Mais bon......Toutes mes excuses...........Merci à tous les trois...!!

Salutations!...........Un grand Merci...!!.................DC

"isabelle" a écrit dans le message de news:
%
bonjour DC,

Sub Macro1()
Selection.CurrentRegion.Select
prmL = Selection.CurrentRegion.Item(1).Row
derL =
Selection.Areas(Selection.Areas.Count)(Selection.Areas(Selection.Areas.Count).Count).Row
LaSomme = Application.Sum(Range(Cells(prmL, ActiveCell.Column),
Cells(derL, ActiveCell.Column)))
End Sub

isabelle

Bonjour à tous,....................Excel 2000 sous XP

Merci de me lire...........Bonne journée...!!

J'aimerais avec une macro, pouvoir éxécuter "une somme" en partant de la
cellule vide au dessus du curseur, jusqu'a la prochaine cellule vide, un
peu comme, avec la somme automatique de la barre d'outils, qui elle
reste en absolu dans une macro,

Et ceci en relatif, car je n'est pas toujour le même nombre de cellules
pleines, çà peut aller de 1 à 25 voir même plus, mais je ne peut pas
dépasser de plus de 2 cellules la dernière cellule pleine, pour la zone
de calcul,.........Merci d'y penser...!!

Salutations!.........Merci d'avance.........de votre aide...!!......DC








Avatar
isabelle
comme ça, c'est mieux ?

Sub Macro1()
Set plg = Selection
Selection.Offset(-2, 0).CurrentRegion.Select
prmL = Selection.CurrentRegion.Item(1).Row
derL = Selection.Areas(Selection.Areas.Count)(Selection.Areas(Selection.Areas.Count).Count).Row
plg.Formula = "=Sum(" & _
Range(Cells(prmL, ActiveCell.Column), Cells(derL, ActiveCell.Column)).Address & ")"
End Sub

isabelle

Bonsoir à tous.................Bonsoir Jacky - Daniel - isabelle,

Merci de vos réponses.............Bonne soirée,

Les 3 solutions réagissent, mais pas comme je le souhaiterais, je me suis
certainement très mal expliqué,

Dans la cellule où se trouve le curseur, il me faudrait une formule
indiquant le résultat du calcul jusqu' la première cellule vide vers le
haut,

Jacky et daniel, donnent à peut prés la même chose, avec la lecture du
résultat dans une fenêtre MsgBox, sauf que Jacky en plus, inscrit la somme
dans la cellule du curseur ( mais ce n'est pas le résultat d'une formule )
je voudrais avec F2, ou un double clic, pouvoir vérifier la correspondance
de la formule,

Quand à isabelle, j' ai dût vraiment...très....très...mal m'expliquer...
Mais bon......Toutes mes excuses...........Merci à tous les trois...!!

Salutations!...........Un grand Merci...!!.................DC

"isabelle" a écrit dans le message de news:
%

bonjour DC,

Sub Macro1()
Selection.CurrentRegion.Select
prmL = Selection.CurrentRegion.Item(1).Row
derL =
Selection.Areas(Selection.Areas.Count)(Selection.Areas(Selection.Areas.Count).Count).Row
LaSomme = Application.Sum(Range(Cells(prmL, ActiveCell.Column),
Cells(derL, ActiveCell.Column)))
End Sub

isabelle


Bonjour à tous,....................Excel 2000 sous XP

Merci de me lire...........Bonne journée...!!

J'aimerais avec une macro, pouvoir éxécuter "une somme" en partant de la
cellule vide au dessus du curseur, jusqu'a la prochaine cellule vide, un
peu comme, avec la somme automatique de la barre d'outils, qui elle reste
en absolu dans une macro,

Et ceci en relatif, car je n'est pas toujour le même nombre de cellules
pleines, çà peut aller de 1 à 25 voir même plus, mais je ne peut pas
dépasser de plus de 2 cellules la dernière cellule pleine, pour la zone
de calcul,.........Merci d'y penser...!!

Salutations!.........Merci d'avance.........de votre aide...!!......DC









Avatar
Jacky
Re...
Ou encore........
Pour n'importe quelle colonne
'----------
Sub jj()
col = Mid(Selection.Address, 2, InStr(2, Selection.Address, "$") - 2)
x = col & ActiveCell.Row - 1
For i = ActiveCell.Row - 1 To 1 Step -1
If Range(col & i) = "" Then Exit For
Next
y = col & i + 1
ActiveCell.Formula = "=sum(" & y & ":" & x & ")"
End Sub
'-----------
JJ

"DC" a écrit dans le message de
news:439f08a0$0$18311$
Bonsoir à tous.................Bonsoir Jacky - Daniel - isabelle,

Merci de vos réponses.............Bonne soirée,

Les 3 solutions réagissent, mais pas comme je le souhaiterais, je me suis
certainement très mal expliqué,

Dans la cellule où se trouve le curseur, il me faudrait une formule
indiquant le résultat du calcul jusqu' la première cellule vide vers le
haut,

Jacky et daniel, donnent à peut prés la même chose, avec la lecture du
résultat dans une fenêtre MsgBox, sauf que Jacky en plus, inscrit la somme
dans la cellule du curseur ( mais ce n'est pas le résultat d'une formule )
je voudrais avec F2, ou un double clic, pouvoir vérifier la correspondance
de la formule,

Quand à isabelle, j' ai dût vraiment...très....très...mal m'expliquer...
Mais bon......Toutes mes excuses...........Merci à tous les trois...!!

Salutations!...........Un grand Merci...!!.................DC

"isabelle" a écrit dans le message de news:
%
bonjour DC,

Sub Macro1()
Selection.CurrentRegion.Select
prmL = Selection.CurrentRegion.Item(1).Row
derL > >
Selection.Areas(Selection.Areas.Count)(Selection.Areas(Selection.Areas.Count


).Count).Row
LaSomme = Application.Sum(Range(Cells(prmL, ActiveCell.Column),
Cells(derL, ActiveCell.Column)))
End Sub

isabelle

Bonjour à tous,....................Excel 2000 sous XP

Merci de me lire...........Bonne journée...!!

J'aimerais avec une macro, pouvoir éxécuter "une somme" en partant de
la



cellule vide au dessus du curseur, jusqu'a la prochaine cellule vide,
un



peu comme, avec la somme automatique de la barre d'outils, qui elle
reste



en absolu dans une macro,

Et ceci en relatif, car je n'est pas toujour le même nombre de cellules
pleines, çà peut aller de 1 à 25 voir même plus, mais je ne peut pas
dépasser de plus de 2 cellules la dernière cellule pleine, pour la zone
de calcul,.........Merci d'y penser...!!

Salutations!.........Merci d'avance.........de votre aide...!!......DC








Avatar
JB
Bonjour

Ce que j'ai compris

A B
1 11
2 11
3 11
4
5
6
7 curseur là


Sub Essai()
n = Range(ActiveCell.Offset(-1, 0), ActiveCell.End(xlUp)).Count
ActiveCell.FormulaR1C1 = "=SUM(R[-" & n - 1 & "]C:R[-1]C)"
End Sub

Ecrit =SOMME(A4:A6)

Cordialement JB
Avatar
DC
Bonsoir à tous.........Bonsoir : Daniel + isabelle + Jacky + JB,

Merci de vos réponses, toutes positives........Bonne Soirée...!!

Après plusieurs essais, il à fallut que je fasse un choix, et j'ai obté pour
la macro de Daniel, ensuite pour information, j'ai modifié les 2 petites
choses suivantes, pour avoir une cellule vide en haut et une cellule vide en
bas avec décalage de 1 ligne pour le résultat avec sa formule, ( pour
faciliter les insertions en haut ou en bas )

i=1......PAR.......i=2.......................et...........................................

Adresse1 = ActiveCell.Offset(-i , 0).Address...........PAR............
Adresse1 = ActiveCell.Offset(-i + 1, 0).Address

'------------------------------------------------------
Sub test3()
Dim i As Long, Total As Double, Adresse1 As String, Adresse2 As String
i = 2
' valable pour la colonne A
Adresse1 = ActiveCell.Offset(-i + 1, 0).Address
Do While ActiveCell.Offset(-i, 0) <> "" And ActiveCell.Offset(-i,
0).Address <> "$K$1"
i = i + 1
Loop
Adresse2 = ActiveCell.Offset(-i, 0).Address
ActiveCell.Formula = "=sum(" & Adresse1 & ":" & Adresse2 & ")"
End Sub
'------------------------------------------------
Aussi, le résultat est au-delà de mes espérances, c'est plus que parfait, çà
fonctionne à merveille........Merci à vous quatre...!!

Cordialement.............un grand Merci...!!......Bonsoir.......DC

"Daniel" a écrit dans le message de news:

Alors, ça, peut-être :

Sub test3()
Dim i As Long, Total As Double, Adresse1 As String, Adresse2 As String
i = 1
' valable pour la colonne A
Adresse1 = ActiveCell.Offset(-i, 0).Address
Do While ActiveCell.Offset(-i, 0) <> "" And ActiveCell.Offset(-i,
0).Address <> "$A$1"
i = i + 1
Loop
Adresse2 = ActiveCell.Offset(-i, 0).Address
ActiveCell.Formula = "=sum(" & Adresse1 & ":" & Adresse2 & ")"
End Sub

Daniel
"DC" a écrit dans le message de news:
439f08a0$0$18311$
Bonsoir à tous.................Bonsoir Jacky - Daniel - isabelle,

Merci de vos réponses.............Bonne soirée,

Les 3 solutions réagissent, mais pas comme je le souhaiterais, je me suis
certainement très mal expliqué,

Dans la cellule où se trouve le curseur, il me faudrait une formule
indiquant le résultat du calcul jusqu' la première cellule vide vers le
haut,

Jacky et daniel, donnent à peut prés la même chose, avec la lecture du
résultat dans une fenêtre MsgBox, sauf que Jacky en plus, inscrit la
somme dans la cellule du curseur ( mais ce n'est pas le résultat d'une
formule ) je voudrais avec F2, ou un double clic, pouvoir vérifier la
correspondance de la formule,

Quand à isabelle, j' ai dût vraiment...très....très...mal m'expliquer...
Mais bon......Toutes mes excuses...........Merci à tous les trois...!!

Salutations!...........Un grand Merci...!!.................DC

"isabelle" a écrit dans le message de news:
%
bonjour DC,

Sub Macro1()
Selection.CurrentRegion.Select
prmL = Selection.CurrentRegion.Item(1).Row
derL =
Selection.Areas(Selection.Areas.Count)(Selection.Areas(Selection.Areas.Count).Count).Row
LaSomme = Application.Sum(Range(Cells(prmL, ActiveCell.Column),
Cells(derL, ActiveCell.Column)))
End Sub

isabelle

Bonjour à tous,....................Excel 2000 sous XP

Merci de me lire...........Bonne journée...!!

J'aimerais avec une macro, pouvoir éxécuter "une somme" en partant de
la cellule vide au dessus du curseur, jusqu'a la prochaine cellule
vide, un peu comme, avec la somme automatique de la barre d'outils, qui
elle reste en absolu dans une macro,

Et ceci en relatif, car je n'est pas toujour le même nombre de cellules
pleines, çà peut aller de 1 à 25 voir même plus, mais je ne peut pas
dépasser de plus de 2 cellules la dernière cellule pleine, pour la zone
de calcul,.........Merci d'y penser...!!

Salutations!.........Merci d'avance.........de votre aide...!!......DC