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

Macro si diminution valeur cellule dans une plage

3 réponses
Avatar
Domi
Bonjour,
Les cellules de "MaPlage" sont vides ou contiennent des valeurs numériques.

Je souhaite qu'a chaque changement de valeur dans une cellule de "MaPlage"
Si la cellule était vide et que j'ajoute une valeur : declenchement de
"mamacro"
Si je change une valeur pour une valeur supérieure : declenchement de
"mamacro"
Si je change une valeur pour une valeur inférieur : rien...

Quelqu'un pourrait-il me donner un coup de main
Merci
Domi

3 réponses

Avatar
Xavier POWAGA
en fait l'astuce consiste à mémoriser les anciennes valeurs
par ce code je les mémorise dans la feuille suivante

code de ta feuille:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target > Sheets(2).Cells(Target.Row, Target.Column) Then lancemacro
Sheets(2).Cells(Target.Row, Target.Column) = Target
End Sub

Sub lancemacro()
MsgBox "la macro est lancée"
End Sub



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

Bonjour,
Les cellules de "MaPlage" sont vides ou contiennent des valeurs
numériques.

Je souhaite qu'a chaque changement de valeur dans une cellule de "MaPlage"
Si la cellule était vide et que j'ajoute une valeur : declenchement de
"mamacro"
Si je change une valeur pour une valeur supérieure : declenchement de
"mamacro"
Si je change une valeur pour une valeur inférieur : rien...

Quelqu'un pourrait-il me donner un coup de main
Merci
Domi




Avatar
JB
Bonjour,

http://cjoint.com/?cruNRi6aL7

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([maplage], Target) Is Nothing And Target.Count = 1
Then
If IsNumeric([mémo]) Then m = CDbl([mémo]) Else m = 0
If Target > m Then mamacro
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([maplage], Target) Is Nothing And Target.Count = 1
Then
ActiveWorkbook.Names.Add Name:="mémo", RefersToR1C1:="=" & Chr( 34)
& Target.Value & Chr(34)
End If
End Sub

Sub mamacro()
MsgBox "coucou"
End Sub

JB

On 17 fév, 19:40, "Domi" wrote:
Bonjour,
Les cellules de "MaPlage" sont vides ou contiennent des valeurs numéri ques.

Je souhaite qu'a chaque changement de valeur dans une cellule de "MaPlage"
Si la cellule était vide et que j'ajoute une valeur : declenchement de
"mamacro"
Si je change une valeur pour une valeur supérieure : declenchement de
"mamacro"
Si je change une valeur pour une valeur inférieur : rien...

Quelqu'un pourrait-il me donner un coup de main
Merci
Domi


Avatar
Domi
Merci JB,
Jétais pas loin...j'avais bien essayé de triturer ta macro "Baisse"... en
vain.
En tout cas là ca marche impec. ;o)
Domi

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

Bonjour,

http://cjoint.com/?cruNRi6aL7

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([maplage], Target) Is Nothing And Target.Count = 1
Then
If IsNumeric([mémo]) Then m = CDbl([mémo]) Else m = 0
If Target > m Then mamacro
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([maplage], Target) Is Nothing And Target.Count = 1
Then
ActiveWorkbook.Names.Add Name:="mémo", RefersToR1C1:="=" & Chr(34)
& Target.Value & Chr(34)
End If
End Sub

Sub mamacro()
MsgBox "coucou"
End Sub

JB

On 17 fév, 19:40, "Domi" wrote:
Bonjour,
Les cellules de "MaPlage" sont vides ou contiennent des valeurs
numériques.

Je souhaite qu'a chaque changement de valeur dans une cellule de "MaPlage"
Si la cellule était vide et que j'ajoute une valeur : declenchement de
"mamacro"
Si je change une valeur pour une valeur supérieure : declenchement de
"mamacro"
Si je change une valeur pour une valeur inférieur : rien...

Quelqu'un pourrait-il me donner un coup de main
Merci
Domi