OVH Cloud OVH Cloud

Additionner a chaque "enter"

9 réponses
Avatar
Érico
Bonjour,

Il n'y a personne qui a trouvé ma réponse a ma demande conserant la macro.

Au lieu de faire une macro, est-ce qu'il existe une formule qui le ferait?

J'ai une colonne BD où le monde inscrit un montant de la réclamation et BE
addition ce montant avec le temps, a chaque fois que la personne fait
"entrer". Je veux pouvoir garder cette somme si j'efface la donnée rentrer
dans BD

Merci

9 réponses

Avatar
Daniel
Bonjour.
Peux-tu donner une exemple de ce que tu souhaites.
Cordialement.
Daniel
"Érico" a écrit dans le message de news:
e%
Bonjour,

Il n'y a personne qui a trouvé ma réponse a ma demande conserant la macro.

Au lieu de faire une macro, est-ce qu'il existe une formule qui le ferait?

J'ai une colonne BD où le monde inscrit un montant de la réclamation et BE
addition ce montant avec le temps, a chaque fois que la personne fait
"entrer". Je veux pouvoir garder cette somme si j'efface la donnée rentrer
dans BD

Merci





Avatar
Érico
Mettons je rentre le chiffre 2 dans BD etil s'inscrit dans BE le 2

Encuite, j'Efface le 2 dans BD et le 2 reste dans BE

Ensuite, j'inscrit 4 dans BD et s'additionne dans BE "6"

Ensuite, efface dans BD et le 6 reste ddans BE

Ensuite, j'écrit 12 dans BD et s'addition dans BE qui donne 18

Ensuite, j'efface dans B et le 18 reste dans BE.

ainsi de suite....




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

Bonjour.
Peux-tu donner une exemple de ce que tu souhaites.
Cordialement.
Daniel
"Érico" a écrit dans le message de news:
e%
Bonjour,

Il n'y a personne qui a trouvé ma réponse a ma demande conserant la
macro.

Au lieu de faire une macro, est-ce qu'il existe une formule qui le
ferait?

J'ai une colonne BD où le monde inscrit un montant de la réclamation et
BE
addition ce montant avec le temps, a chaque fois que la personne fait
"entrer". Je veux pouvoir garder cette somme si j'efface la donnée
rentrer dans BD

Merci









Avatar
garnote
Bonjour,

Essaie ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 56 Then Cells(Target.Row, 57) = Cells(Target.Row, 57) + Cells(Target.Row, 56)
End Sub

Serge

"Érico" a écrit dans le message de news: e%
Bonjour,

Il n'y a personne qui a trouvé ma réponse a ma demande conserant la macro.

Au lieu de faire une macro, est-ce qu'il existe une formule qui le ferait?

J'ai une colonne BD où le monde inscrit un montant de la réclamation et BE
addition ce montant avec le temps, a chaque fois que la personne fait "entrer". Je veux pouvoir garder cette somme si j'efface la
donnée rentrer dans BD

Merci





Avatar
garnote
Ou plus simplement :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 56 Then
ligne = Target.Row
Cells(ligne, 57) = Cells(ligne, 57) + Cells(ligne, 56)
End If
End Sub

Serge


"Érico" a écrit dans le message de news: e%
Bonjour,

Il n'y a personne qui a trouvé ma réponse a ma demande conserant la macro.

Au lieu de faire une macro, est-ce qu'il existe une formule qui le ferait?

J'ai une colonne BD où le monde inscrit un montant de la réclamation et BE
addition ce montant avec le temps, a chaque fois que la personne fait "entrer". Je veux pouvoir garder cette somme si j'efface la
donnée rentrer dans BD

Merci





Avatar
Daniel
Il y a une méthode simple mais peu recommandée :
Outils / Options / Calcul, Cocher "Itération" et mettre 1 dans le nombre
maximal d'itération.
En BE1, tu mets ½1+BE1
Les cellules fonctionnent comme tu le souhaites. Il est néanmoins préférable
d'utiliser une macro. :
Dans le code de la feuille ((clic drooit sur l'onglet, cllic sur "Visualiser
le code), copie :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value _
+ Target.Value
End Sub

Cordialement.
Daniel
"Érico" a écrit dans le message de news:
Oqqf%
Mettons je rentre le chiffre 2 dans BD etil s'inscrit dans BE le 2

Encuite, j'Efface le 2 dans BD et le 2 reste dans BE

Ensuite, j'inscrit 4 dans BD et s'additionne dans BE "6"

Ensuite, efface dans BD et le 6 reste ddans BE

Ensuite, j'écrit 12 dans BD et s'addition dans BE qui donne 18

Ensuite, j'efface dans B et le 18 reste dans BE.

ainsi de suite....




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

Bonjour.
Peux-tu donner une exemple de ce que tu souhaites.
Cordialement.
Daniel
"Érico" a écrit dans le message de news:
e%
Bonjour,

Il n'y a personne qui a trouvé ma réponse a ma demande conserant la
macro.

Au lieu de faire une macro, est-ce qu'il existe une formule qui le
ferait?

J'ai une colonne BD où le monde inscrit un montant de la réclamation et
BE
addition ce montant avec le temps, a chaque fois que la personne fait
"entrer". Je veux pouvoir garder cette somme si j'efface la donnée
rentrer dans BD

Merci













Avatar
garnote
Salut Daniel,

À ce que je vois, tu es beaucoup plus prudent que moi ;-)
Bien bonne idée, j'en tiendrai compte à l'avenir.

Serge

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column <> 56 Then Exit Sub
If Not IsNumeric(Target.Value) Then Exit Sub
Target.Offset(0, 1).Value = Target.Offset(0, 1).Value _
+ Target.Value
End Sub


Avatar
Érico
C'est quoi la différence avec ça?

Est-ce bon pour BD56 à BD70 et BD76 à BD101 pour la saisie
Et BE56 à BE70 et BE76 à BE101 pour la somme

Merci



Mon ancienne macro qui ne fonctionnait pas bien:
J'avais rajouter la fonction de changer la couleur des caractères a tout
changement
______________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
' If Not Intersect([A17:AO70,A76:AO101,A106:AO126,B132:AO152], Target) Is
Nothing And Target.Count = 1 Then
If Target.Count = 1 Then

'Target.Interior.ColorIndex = 40
'Selection.Font.ColorIndex = 3
Target.Font.ColorIndex = 3
Else
Const iMin As Long = 17 'A ajuster
Const iMax As Long = 169 'A ajuster
Const iCol As Long = 57 'A ajuster

Dim Rg As Range
Set Rg = Intersect(Target, Range("BD" & iMin & ":BD" & iMax)) 'colonne
BD

If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
If c <> "" Then
If IsNumeric(c) Then
If c.Offset(, 1).Value + c.Value > c.Offset(, -2).Value + _
c.Offset(, -1).Value Then
MsgBox "Le montant est supérieur à vos disponibilités."
c.Select
Application.EnableEvents = True
Set Rg1 = Target
Exit Sub
Else
c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value
End If
Else
c.Value = ""
End If
End If
Next
Set Rg1 = Target
Application.EnableEvents = True
Else
Set Rg = Nothing
End If
End If
End Sub






___________________________________________________________________________________________________
"garnote" a écrit dans le message de news:
%
Ou plus simplement :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 56 Then
ligne = Target.Row
Cells(ligne, 57) = Cells(ligne, 57) + Cells(ligne, 56)
End If
End Sub

Serge


"Érico" a écrit dans le message de news:
e%
Bonjour,

Il n'y a personne qui a trouvé ma réponse a ma demande conserant la
macro.

Au lieu de faire une macro, est-ce qu'il existe une formule qui le
ferait?

J'ai une colonne BD où le monde inscrit un montant de la réclamation et
BE
addition ce montant avec le temps, a chaque fois que la personne fait
"entrer". Je veux pouvoir garder cette somme si j'efface la donnée
rentrer dans BD

Merci









Avatar
Érico
Salut Garnote et merci pour ton aide.

J'ai essayé ta macro et elle bloque a l'avant dernière ligne.
Je l'ai mis en une ligne et deux lignes et ça bloque.

Érico






"Érico" a écrit dans le message de news:

C'est quoi la différence avec ça?

Est-ce bon pour BD56 à BD70 et BD76 à BD101 pour la saisie
Et BE56 à BE70 et BE76 à BE101 pour la somme

Merci



Mon ancienne macro qui ne fonctionnait pas bien:
J'avais rajouter la fonction de changer la couleur des caractères a tout
changement
______________________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
' If Not Intersect([A17:AO70,A76:AO101,A106:AO126,B132:AO152], Target) Is
Nothing And Target.Count = 1 Then
If Target.Count = 1 Then

'Target.Interior.ColorIndex = 40
'Selection.Font.ColorIndex = 3
Target.Font.ColorIndex = 3
Else
Const iMin As Long = 17 'A ajuster
Const iMax As Long = 169 'A ajuster
Const iCol As Long = 57 'A ajuster

Dim Rg As Range
Set Rg = Intersect(Target, Range("BD" & iMin & ":BD" & iMax)) 'colonne
BD

If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
If c <> "" Then
If IsNumeric(c) Then
If c.Offset(, 1).Value + c.Value > c.Offset(, -2).Value + _
c.Offset(, -1).Value Then
MsgBox "Le montant est supérieur à vos disponibilités."
c.Select
Application.EnableEvents = True
Set Rg1 = Target
Exit Sub
Else
c.Offset(0, 1).Value = c.Offset(0, 1).Value + c.Value
End If
Else
c.Value = ""
End If
End If
Next
Set Rg1 = Target
Application.EnableEvents = True
Else
Set Rg = Nothing
End If
End If
End Sub






___________________________________________________________________________________________________
"garnote" a écrit dans le message de news:
%
Ou plus simplement :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 56 Then
ligne = Target.Row
Cells(ligne, 57) = Cells(ligne, 57) + Cells(ligne, 56)
End If
End Sub

Serge


"Érico" a écrit dans le message de news:
e%
Bonjour,

Il n'y a personne qui a trouvé ma réponse a ma demande conserant la
macro.

Au lieu de faire une macro, est-ce qu'il existe une formule qui le
ferait?

J'ai une colonne BD où le monde inscrit un montant de la réclamation et
BE
addition ce montant avec le temps, a chaque fois que la personne fait
"entrer". Je veux pouvoir garder cette somme si j'efface la donnée
rentrer dans BD

Merci













Avatar
Érico
Merci pour ton aide.

Celle-ci fonctionne tres bien.

Sauf ma colonne de droite où il y a de l'addition, il est protégé , comment
je pourrais contourner ce probleme?

Merci



__________________________________________________

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 56 Then

Ligne = Target.Row

Cells(Ligne, 57) = Cells(Ligne, 57) + Cells(Ligne, 56)

End If

End Sub