OVH Cloud OVH Cloud

Somme tableau

20 réponses
Avatar
Andrea Parker
Bonjour

j'ai récupéré cette macro afin d'additionner un tableau
------------------------------------------------------------------
With Selection.CurrentRegion
Intersect(.Cells, .Offset(1, 1)).Select
End With
Do While IsEmpty(ActiveCell) = False
ActiveCell.End(xlDown).Offset(1, 0).Value = "=sum(" &
ActiveCell.End(xlUp).Address & ":" & ActiveCell.End(xlDown).Address & ")"
ActiveCell.Offset(0, 1).Activate
Loop
-------------------------------------------------------------------

le problème qui se pose est que parfois la première cellule d'une
colonne peut être vide
et là, la macro s'arrête et la somme ne se fait pas

comment forcer le calcul dans ce cas

merci d'avance

10 réponses

1 2
Avatar
LeSteph
Bonsoir,

Je n'ai pas testé mais d'emblée
Do While IsEmpty(ActiveCell) = False
implique que l'action s'execute tant qu'il n'y a pas de cellules vides
Si la macro convient , mettre des 0 dans les cellules vides peut règler le
pb.
Pour ne pas les voir: Outils option affichage valeurs 0 décoché.

Amicalement

LeSteph


"Andrea Parker" a écrit dans le message de
news:
Bonjour

j'ai récupéré cette macro afin d'additionner un tableau
------------------------------------------------------------------
With Selection.CurrentRegion
Intersect(.Cells, .Offset(1, 1)).Select
End With
Do While IsEmpty(ActiveCell) = False
ActiveCell.End(xlDown).Offset(1, 0).Value = "=sum(" &
ActiveCell.End(xlUp).Address & ":" & ActiveCell.End(xlDown).Address & ")"
ActiveCell.Offset(0, 1).Activate
Loop
-------------------------------------------------------------------

le problème qui se pose est que parfois la première cellule d'une
colonne peut être vide
et là, la macro s'arrête et la somme ne se fait pas

comment forcer le calcul dans ce cas

merci d'avance



Avatar
LeSteph
Bonsoir,

Je n'ai pas testé mais d'emblée
Do While IsEmpty(ActiveCell) = False
implique que l'action s'execute tant qu'il n'y a pas de cellules vides
Si la macro convient , mettre des 0 dans les cellules vides peut règler le
pb.
Pour ne pas les voir: Outils option affichage valeurs 0 décoché.

Amicalement

LeSteph


"Andrea Parker" a écrit dans le message de
news:
Bonjour

j'ai récupéré cette macro afin d'additionner un tableau
------------------------------------------------------------------
With Selection.CurrentRegion
Intersect(.Cells, .Offset(1, 1)).Select
End With
Do While IsEmpty(ActiveCell) = False
ActiveCell.End(xlDown).Offset(1, 0).Value = "=sum(" &
ActiveCell.End(xlUp).Address & ":" & ActiveCell.End(xlDown).Address & ")"
ActiveCell.Offset(0, 1).Activate
Loop
-------------------------------------------------------------------

le problème qui se pose est que parfois la première cellule d'une
colonne peut être vide
et là, la macro s'arrête et la somme ne se fait pas

comment forcer le calcul dans ce cas

merci d'avance



Avatar
LeSteph
Bonsoir,

Je n'ai pas testé mais d'emblée
Do While IsEmpty(ActiveCell) = False
implique que l'action s'execute tant qu'il n'y a pas de cellules vides
Si la macro convient , mettre des 0 dans les cellules vides peut règler le
pb.
Pour ne pas les voir: Outils option affichage valeurs 0 décoché.

Amicalement

LeSteph


"Andrea Parker" a écrit dans le message de
news:
Bonjour

j'ai récupéré cette macro afin d'additionner un tableau
------------------------------------------------------------------
With Selection.CurrentRegion
Intersect(.Cells, .Offset(1, 1)).Select
End With
Do While IsEmpty(ActiveCell) = False
ActiveCell.End(xlDown).Offset(1, 0).Value = "=sum(" &
ActiveCell.End(xlUp).Address & ":" & ActiveCell.End(xlDown).Address & ")"
ActiveCell.Offset(0, 1).Activate
Loop
-------------------------------------------------------------------

le problème qui se pose est que parfois la première cellule d'une
colonne peut être vide
et là, la macro s'arrête et la somme ne se fait pas

comment forcer le calcul dans ce cas

merci d'avance



Avatar
Andrea Parker
bon en attendant j'ai ajouté cela
If ActiveCell.Value = "" Then ActiveCell.Value = 0

si quelqu'un à mieux
je suis preneur

merci

Andrea Parker a écrit:
Bonjour

j'ai récupéré cette macro afin d'additionner un tableau
------------------------------------------------------------------
With Selection.CurrentRegion
Intersect(.Cells, .Offset(1, 1)).Select
End With
Do While IsEmpty(ActiveCell) = False
ActiveCell.End(xlDown).Offset(1, 0).Value = "=sum(" &
ActiveCell.End(xlUp).Address & ":" & ActiveCell.End(xlDown).Address & ")"
ActiveCell.Offset(0, 1).Activate
Loop
-------------------------------------------------------------------

le problème qui se pose est que parfois la première cellule d'une
colonne peut être vide
et là, la macro s'arrête et la somme ne se fait pas

comment forcer le calcul dans ce cas

merci d'avance



Avatar
Andrea Parker
mais
si j'ajoute zéro,
à la fin de mon tableau il ajoute un zéro à la colonne suivante et
comme toute la colonne est vide cela plante

il faut donc une autre solution

LeSteph a écrit:
Bonsoir,

Je n'ai pas testé mais d'emblée
Do While IsEmpty(ActiveCell) = False
implique que l'action s'execute tant qu'il n'y a pas de cellules vides
Si la macro convient , mettre des 0 dans les cellules vides peut règler le
pb.
Pour ne pas les voir: Outils option affichage valeurs 0 décoché.

Amicalement

LeSteph


"Andrea Parker" a écrit dans le message de
news:

Bonjour

j'ai récupéré cette macro afin d'additionner un tableau
------------------------------------------------------------------
With Selection.CurrentRegion
Intersect(.Cells, .Offset(1, 1)).Select
End With
Do While IsEmpty(ActiveCell) = False
ActiveCell.End(xlDown).Offset(1, 0).Value = "=sum(" &
ActiveCell.End(xlUp).Address & ":" & ActiveCell.End(xlDown).Address & ")"
ActiveCell.Offset(0, 1).Activate
Loop
-------------------------------------------------------------------

le problème qui se pose est que parfois la première cellule d'une
colonne peut être vide
et là, la macro s'arrête et la somme ne se fait pas

comment forcer le calcul dans ce cas

merci d'avance









Avatar
Daniel.M
Allo,

Qu'est-ce que tu veux faire exactement? En inscrivant une formule ou le résultat
final? Dans quelle cellule? Donne un exemple des plages que tu utilises et
celles dans lesquelles tu veux inscrire quelque chose.

Salutations,

Daniel M.

"Andrea Parker" wrote in message
news:
Bonjour

j'ai récupéré cette macro afin d'additionner un tableau
------------------------------------------------------------------
With Selection.CurrentRegion
Intersect(.Cells, .Offset(1, 1)).Select
End With
Do While IsEmpty(ActiveCell) = False
ActiveCell.End(xlDown).Offset(1, 0).Value = "=sum(" &
ActiveCell.End(xlUp).Address & ":" & ActiveCell.End(xlDown).Address & ")"
ActiveCell.Offset(0, 1).Activate
Loop
-------------------------------------------------------------------

le problème qui se pose est que parfois la première cellule d'une
colonne peut être vide
et là, la macro s'arrête et la somme ne se fait pas

comment forcer le calcul dans ce cas

merci d'avance



Avatar
Andrea Parker
J'ai une macro qui prend certaines données de la feuille 1 et qui les
recopie dans la feuille 2

je souhaite totaliser les colonnes obtenues dans la feuille 2
exemple


Date Espèces Carte Divers
24/05/04 888,88
24/05/04 1 777,76 20,00 10,00
24/05/04 1 210,89 50,00 20,00


==========================================

Daniel.M a écrit:
Allo,

Qu'est-ce que tu veux faire exactement? En inscrivant une formule ou le résultat
final? Dans quelle cellule? Donne un exemple des plages que tu utilises et
celles dans lesquelles tu veux inscrire quelque chose.

Salutations,

Daniel M.

"Andrea Parker" wrote in message
news:

Bonjour

j'ai récupéré cette macro afin d'additionner un tableau
------------------------------------------------------------------
With Selection.CurrentRegion
Intersect(.Cells, .Offset(1, 1)).Select
End With
Do While IsEmpty(ActiveCell) = False
ActiveCell.End(xlDown).Offset(1, 0).Value = "=sum(" &
ActiveCell.End(xlUp).Address & ":" & ActiveCell.End(xlDown).Address & ")"
ActiveCell.Offset(0, 1).Activate
Loop
-------------------------------------------------------------------

le problème qui se pose est que parfois la première cellule d'une
colonne peut être vide
et là, la macro s'arrête et la somme ne se fait pas

comment forcer le calcul dans ce cas

merci d'avance








Avatar
michdenis
Bonjour Andréa,

à défaut d'avoir des informations supplémentaires sur ce que tu veux faire ..
tu peux remplacer ta boucle par ceci :

'------------------
Do
If IsEmpty(ActiveCell) = True Then
If IsEmpty(ActiveCell.Offset(1)) = True Then
Exit Do
Else
ActiveCell.Offset(1).Activate
ActiveCell.End(xlDown).Offset(-1, 0).Value = "=sum(" & _
ActiveCell.End(xlUp).Address & ":" & _
ActiveCell.End(xlDown).Address & ")"
End If
Else
ActiveCell.End(xlDown).Offset(1, 0).Value = "=sum(" & _
ActiveCell.End(xlUp).Address & ":" & _
ActiveCell.End(xlDown).Address & ")"
End If
ActiveCell.Offset(0, 1).Activate
Loop
'------------------


Salutations!


"Andrea Parker" a écrit dans le message de news:
Bonjour

j'ai récupéré cette macro afin d'additionner un tableau
------------------------------------------------------------------
With Selection.CurrentRegion
Intersect(.Cells, .Offset(1, 1)).Select
End With
Do While IsEmpty(ActiveCell) = False
ActiveCell.End(xlDown).Offset(1, 0).Value = "=sum(" &
ActiveCell.End(xlUp).Address & ":" & ActiveCell.End(xlDown).Address & ")"
ActiveCell.Offset(0, 1).Activate
Loop
-------------------------------------------------------------------

le problème qui se pose est que parfois la première cellule d'une
colonne peut être vide
et là, la macro s'arrête et la somme ne se fait pas

comment forcer le calcul dans ce cas

merci d'avance
Avatar
Andrea Parker
J'ai testé ceci
========================== Range("a1").Select

With Selection.CurrentRegion
Intersect(.Cells, .Offset(1, 1)).Select
End With

Do While IsEmpty(ActiveCell) = False

ActiveCell.End(xlDown).Offset(1, 0).Value = "=sum(" &
ActiveCell.End(xlUp).Address & ":" & ActiveCell.End(xlDown).Address & ")"
ActiveCell.Offset(0, 1).Activate
If ActiveCell.Offset(-1, 0) = "" Then
Else: ActiveCell.Value = 0
End If
Loop

============================================= cela semble fonctionner mais on peut surement faire plus simple


Daniel.M a écrit:
Allo,

Qu'est-ce que tu veux faire exactement? En inscrivant une formule ou le résultat
final? Dans quelle cellule? Donne un exemple des plages que tu utilises et
celles dans lesquelles tu veux inscrire quelque chose.

Salutations,

Daniel M.

"Andrea Parker" wrote in message
news:

Bonjour

j'ai récupéré cette macro afin d'additionner un tableau
------------------------------------------------------------------
With Selection.CurrentRegion
Intersect(.Cells, .Offset(1, 1)).Select
End With
Do While IsEmpty(ActiveCell) = False
ActiveCell.End(xlDown).Offset(1, 0).Value = "=sum(" &
ActiveCell.End(xlUp).Address & ":" & ActiveCell.End(xlDown).Address & ")"
ActiveCell.Offset(0, 1).Activate
Loop
-------------------------------------------------------------------

le problème qui se pose est que parfois la première cellule d'une
colonne peut être vide
et là, la macro s'arrête et la somme ne se fait pas

comment forcer le calcul dans ce cas

merci d'avance








Avatar
Andrea Parker
merci
c'est impec
===================== michdenis a écrit:
Bonjour Andréa,

à défaut d'avoir des informations supplémentaires sur ce que tu veux faire ..
tu peux remplacer ta boucle par ceci :

'------------------
Do
If IsEmpty(ActiveCell) = True Then
If IsEmpty(ActiveCell.Offset(1)) = True Then
Exit Do
Else
ActiveCell.Offset(1).Activate
ActiveCell.End(xlDown).Offset(-1, 0).Value = "=sum(" & _
ActiveCell.End(xlUp).Address & ":" & _
ActiveCell.End(xlDown).Address & ")"
End If
Else
ActiveCell.End(xlDown).Offset(1, 0).Value = "=sum(" & _
ActiveCell.End(xlUp).Address & ":" & _
ActiveCell.End(xlDown).Address & ")"
End If
ActiveCell.Offset(0, 1).Activate
Loop
'------------------


Salutations!


"Andrea Parker" a écrit dans le message de news:
Bonjour

j'ai récupéré cette macro afin d'additionner un tableau
------------------------------------------------------------------
With Selection.CurrentRegion
Intersect(.Cells, .Offset(1, 1)).Select
End With
Do While IsEmpty(ActiveCell) = False
ActiveCell.End(xlDown).Offset(1, 0).Value = "=sum(" &
ActiveCell.End(xlUp).Address & ":" & ActiveCell.End(xlDown).Address & ")"
ActiveCell.Offset(0, 1).Activate
Loop
-------------------------------------------------------------------

le problème qui se pose est que parfois la première cellule d'une
colonne peut être vide
et là, la macro s'arrête et la somme ne se fait pas

comment forcer le calcul dans ce cas

merci d'avance




1 2