OVH Cloud OVH Cloud

Evènement: Modifier une cellule

5 réponses
Avatar
Max
Bonjour;

Existe-t-il un événement Workboook qui se déclenche immédiatement après
avoir modifié une cellule, p.ex. en saisissant ou en modifiant une valeur ?
Merci de votre aide
Max

5 réponses

Avatar
Ange Ounis
As-tu essayé Workbook_SheetChange ?

----------
Ange Ounis
----------

Bonjour;

Existe-t-il un événement Workboook qui se déclenche immédiatement après
avoir modifié une cellule, p.ex. en saisissant ou en modifiant une valeur ?
Merci de votre aide
Max




Avatar
JB
Bonjour,

-Clic/Droit sur l'onglet
-Visualiser lecode

L'exemple suivant traduit le nom saisi avec la première lettre en
majuscule.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Count = 1 Then
Target = Application.Proper(Target)
End If
Application.EnableEvents = True
End Sub

http://boisgontierj.free.fr/fichiers/jb-worksheetchange.zip

Cordialement JB


Bonjour;

Existe-t-il un événement Workboook qui se déclenche immédiatement après
avoir modifié une cellule, p.ex. en saisissant ou en modifiant une vale ur ?
Merci de votre aide
Max


Avatar
Max
Bonjour JB,
Merci de ton intervention. Si je répond seulement aujourd'hui, c'est que
j'ai fait plusieurs essais
d'adapter l'exemple à mon cas, mais je n'ai pas réussi.
Voici mon code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
Dim a, b, c
a = ActiveCell.Value
b = Int(ActiveCell)
c = a - b
If c = 0 Then
Selection.NumberFormat = """Fr."" * #,##0.--_ ;""Fr."" * -#,##0.--_
"
Else
Selection.NumberFormat = """Fr."" * #,##0.00_ ;""Fr."" * -#,##0.00_
"
End If
End Sub
En somme, je voudrais que si on saisit 5, ça affiche Fr. 5.--, et si on on
saisit 5.75 ça donne Fr. 5.75. (on n'est pas encore dans l'euro).
Or, au moment de la saisie, après avoir fait Enter, ça ne fonctionne pas,
mais si, après avoir saisi la valeur, quand je remonte sur la cellule
saisie, le format voulu s'affiche.
Comment faire pour que ça affiche immédiatement le format recherché.
Cordialement
Max

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

Bonjour,

-Clic/Droit sur l'onglet
-Visualiser lecode

L'exemple suivant traduit le nom saisi avec la première lettre en
majuscule.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Count = 1 Then
Target = Application.Proper(Target)
End If
Application.EnableEvents = True
End Sub

http://boisgontierj.free.fr/fichiers/jb-worksheetchange.zip

Cordialement JB


Bonjour;

Existe-t-il un événement Workboook qui se déclenche immédiatement après
avoir modifié une cellule, p.ex. en saisissant ou en modifiant une valeur
?
Merci de votre aide
Max


Avatar
Max
Bonjour,
Merci, mais j'avais déjà essayé cet événement, sans succès.
J'ai exposé mon problème en détail à JB.
Cordialement,
Max

"Ange Ounis" a écrit dans le message de news:
OO1Cu6$
As-tu essayé Workbook_SheetChange ?

----------
Ange Ounis
----------

Bonjour;

Existe-t-il un événement Workboook qui se déclenche immédiatement après
avoir modifié une cellule, p.ex. en saisissant ou en modifiant une valeur
?
Merci de votre aide
Max




Avatar
JB
Bonjour,

Il faut prendre l'évennement Change - modif cellule - et non pas
Selection_Change: -selection d'une cellule-

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target - Int(Target) = 0 Then
Target.NumberFormat = """Fr."" * #,##0.--_ ;""Fr."" * -#,##0.--"
Else
Target.NumberFormat = """Fr."" * #,##0.00_ ;""Fr."" * -#,##0.00"
End If
Application.EnableEvents = True
End Sub

JB

Bonjour JB,
Merci de ton intervention. Si je répond seulement aujourd'hui, c'est que
j'ai fait plusieurs essais
d'adapter l'exemple à mon cas, mais je n'ai pas réussi.
Voici mon code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
Dim a, b, c
a = ActiveCell.Value
b = Int(ActiveCell)
c = a - b
If c = 0 Then
Selection.NumberFormat = """Fr."" * #,##0.--_ ;""Fr."" * -#,##0 .--_
"
Else
Selection.NumberFormat = """Fr."" * #,##0.00_ ;""Fr."" * -#,##0 .00_
"
End If
End Sub
En somme, je voudrais que si on saisit 5, ça affiche Fr. 5.--, et si on on
saisit 5.75 ça donne Fr. 5.75. (on n'est pas encore dans l'euro).
Or, au moment de la saisie, après avoir fait Enter, ça ne fonctionne pas,
mais si, après avoir saisi la valeur, quand je remonte sur la cellule
saisie, le format voulu s'affiche.
Comment faire pour que ça affiche immédiatement le format recherché.
Cordialement
Max

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

Bonjour,

-Clic/Droit sur l'onglet
-Visualiser lecode

L'exemple suivant traduit le nom saisi avec la première lettre en
majuscule.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Count = 1 Then
Target = Application.Proper(Target)
End If
Application.EnableEvents = True
End Sub

http://boisgontierj.free.fr/fichiers/jb-worksheetchange.zip

Cordialement JB


Bonjour;

Existe-t-il un événement Workboook qui se déclenche immédiateme nt après
avoir modifié une cellule, p.ex. en saisissant ou en modifiant une va leur
?
Merci de votre aide
Max