Bonsoir tout le monde
Pourquoi donc cette procédure transforme t'elle 12 en 1,2 (jusque là je
comprends), mais aussi 125 en 1,25 au lieu de 12,5 (là, je comprends
plus : d'où ma question)
Private Sub Worksheet_Change(ByVal Target As Range)
If Range(Target.Address) > 10 Then Target = Range(Target.Address) / 10
End Sub
merci de l'explication si vous n'êtes pas largués comme moi.
Tu nous avais pourtant déjà averti ! On n'écoute pas :-)
Serge
Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect As Range, c As Range Set iSect = Intersect(Target, [a2:e100]) '*** If iSect Is Nothing Then Exit Sub Application.EnableEvents = False For Each c In iSect.Cells '*** If c.Value > 10 Then c = c / 10 Next Application.EnableEvents = True End Sub
"LSteph" a écrit dans le message de news: %
Bonjour,
Voici deux autres possibilités (faut choisir)
pour prendre en compte les saisies sur cellules multiples...
''''''''' Private Sub Worksheet_Change(ByVal Target As Range) dim c as range Application.EnableEvents = False For each c in target.cells If c.value > 10 Then c = c / 10 next Application.EnableEvents = True End Sub '''''''''
mais il serait bon aussi de limiter dans la feuille à la plage de cellules , qui seule soit sensée réagir à ce change, (exemple a2:e100):
''''''''' Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect As Range, c As Range Set iSect = Intersect(Target, [a2:e100]) If iSect Is Nothing Then Exit Sub Application.EnableEvents = False For Each c In iSect.Cells If c.Value > 10 Then c = c / 10 Next Application.EnableEvents = True End Sub
''''''''' 'cdlt 'lSteph
Bonsoir tout le monde Pourquoi donc cette procédure transforme t'elle 12 en 1,2 (jusque là je comprends), mais aussi 125 en 1,25 au lieu de 12,5 (là, je comprends plus : d'où ma question) Private Sub Worksheet_Change(ByVal Target As Range)
If Range(Target.Address) > 10 Then Target = Range(Target.Address) / 10
End Sub
merci de l'explication si vous n'êtes pas largués comme moi.
Robert
Salut Stéphane,
Tu nous avais pourtant déjà averti !
On n'écoute pas :-)
Serge
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range, c As Range
Set iSect = Intersect(Target, [a2:e100]) '***
If iSect Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In iSect.Cells '***
If c.Value > 10 Then c = c / 10
Next
Application.EnableEvents = True
End Sub
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de news: %236ajIIEoHHA.4428@TK2MSFTNGP06.phx.gbl...
Bonjour,
Voici deux autres possibilités (faut choisir)
pour prendre en compte les saisies sur cellules multiples...
'''''''''
Private Sub Worksheet_Change(ByVal Target As Range)
dim c as range
Application.EnableEvents = False
For each c in target.cells
If c.value > 10 Then c = c / 10
next
Application.EnableEvents = True
End Sub
'''''''''
mais il serait bon aussi de limiter dans la feuille à la plage de cellules , qui seule soit sensée réagir à ce change, (exemple
a2:e100):
'''''''''
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range, c As Range
Set iSect = Intersect(Target, [a2:e100])
If iSect Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In iSect.Cells
If c.Value > 10 Then c = c / 10
Next
Application.EnableEvents = True
End Sub
'''''''''
'cdlt
'lSteph
Bonsoir tout le monde
Pourquoi donc cette procédure transforme t'elle 12 en 1,2 (jusque là je comprends), mais aussi 125 en 1,25 au lieu de 12,5 (là,
je comprends plus : d'où ma question)
Private Sub Worksheet_Change(ByVal Target As Range)
If Range(Target.Address) > 10 Then Target = Range(Target.Address) / 10
End Sub
merci de l'explication si vous n'êtes pas largués comme moi.
Tu nous avais pourtant déjà averti ! On n'écoute pas :-)
Serge
Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect As Range, c As Range Set iSect = Intersect(Target, [a2:e100]) '*** If iSect Is Nothing Then Exit Sub Application.EnableEvents = False For Each c In iSect.Cells '*** If c.Value > 10 Then c = c / 10 Next Application.EnableEvents = True End Sub
"LSteph" a écrit dans le message de news: %
Bonjour,
Voici deux autres possibilités (faut choisir)
pour prendre en compte les saisies sur cellules multiples...
''''''''' Private Sub Worksheet_Change(ByVal Target As Range) dim c as range Application.EnableEvents = False For each c in target.cells If c.value > 10 Then c = c / 10 next Application.EnableEvents = True End Sub '''''''''
mais il serait bon aussi de limiter dans la feuille à la plage de cellules , qui seule soit sensée réagir à ce change, (exemple a2:e100):
''''''''' Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect As Range, c As Range Set iSect = Intersect(Target, [a2:e100]) If iSect Is Nothing Then Exit Sub Application.EnableEvents = False For Each c In iSect.Cells If c.Value > 10 Then c = c / 10 Next Application.EnableEvents = True End Sub
''''''''' 'cdlt 'lSteph
Bonsoir tout le monde Pourquoi donc cette procédure transforme t'elle 12 en 1,2 (jusque là je comprends), mais aussi 125 en 1,25 au lieu de 12,5 (là, je comprends plus : d'où ma question) Private Sub Worksheet_Change(ByVal Target As Range)
If Range(Target.Address) > 10 Then Target = Range(Target.Address) / 10
End Sub
merci de l'explication si vous n'êtes pas largués comme moi.
Robert
garnote
Encore plus prudent :
Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect As Range, c As Range Set iSect = Intersect(Target, [a2:e100]) If iSect Is Nothing Then Exit Sub Application.EnableEvents = False For Each c In iSect If IsNumeric(c) And c > 10 Then c = c / 10 Next Application.EnableEvents = True End Sub
Serge
"LSteph" a écrit dans le message de news: %
Bonjour,
Voici deux autres possibilités (faut choisir)
pour prendre en compte les saisies sur cellules multiples...
''''''''' Private Sub Worksheet_Change(ByVal Target As Range) dim c as range Application.EnableEvents = False For each c in target.cells If c.value > 10 Then c = c / 10 next Application.EnableEvents = True End Sub '''''''''
mais il serait bon aussi de limiter dans la feuille à la plage de cellules , qui seule soit sensée réagir à ce change, (exemple a2:e100):
''''''''' Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect As Range, c As Range Set iSect = Intersect(Target, [a2:e100]) If iSect Is Nothing Then Exit Sub Application.EnableEvents = False For Each c In iSect.Cells If c.Value > 10 Then c = c / 10 Next Application.EnableEvents = True End Sub
''''''''' 'cdlt 'lSteph
Bonsoir tout le monde Pourquoi donc cette procédure transforme t'elle 12 en 1,2 (jusque là je comprends), mais aussi 125 en 1,25 au lieu de 12,5 (là, je comprends plus : d'où ma question) Private Sub Worksheet_Change(ByVal Target As Range)
If Range(Target.Address) > 10 Then Target = Range(Target.Address) / 10
End Sub
merci de l'explication si vous n'êtes pas largués comme moi.
Robert
Encore plus prudent :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range, c As Range
Set iSect = Intersect(Target, [a2:e100])
If iSect Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In iSect
If IsNumeric(c) And c > 10 Then c = c / 10
Next
Application.EnableEvents = True
End Sub
Serge
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de news: %236ajIIEoHHA.4428@TK2MSFTNGP06.phx.gbl...
Bonjour,
Voici deux autres possibilités (faut choisir)
pour prendre en compte les saisies sur cellules multiples...
'''''''''
Private Sub Worksheet_Change(ByVal Target As Range)
dim c as range
Application.EnableEvents = False
For each c in target.cells
If c.value > 10 Then c = c / 10
next
Application.EnableEvents = True
End Sub
'''''''''
mais il serait bon aussi de limiter dans la feuille à la plage de cellules , qui seule soit sensée réagir à ce change, (exemple
a2:e100):
'''''''''
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range, c As Range
Set iSect = Intersect(Target, [a2:e100])
If iSect Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In iSect.Cells
If c.Value > 10 Then c = c / 10
Next
Application.EnableEvents = True
End Sub
'''''''''
'cdlt
'lSteph
Bonsoir tout le monde
Pourquoi donc cette procédure transforme t'elle 12 en 1,2 (jusque là je comprends), mais aussi 125 en 1,25 au lieu de 12,5 (là,
je comprends plus : d'où ma question)
Private Sub Worksheet_Change(ByVal Target As Range)
If Range(Target.Address) > 10 Then Target = Range(Target.Address) / 10
End Sub
merci de l'explication si vous n'êtes pas largués comme moi.
Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect As Range, c As Range Set iSect = Intersect(Target, [a2:e100]) If iSect Is Nothing Then Exit Sub Application.EnableEvents = False For Each c In iSect If IsNumeric(c) And c > 10 Then c = c / 10 Next Application.EnableEvents = True End Sub
Serge
"LSteph" a écrit dans le message de news: %
Bonjour,
Voici deux autres possibilités (faut choisir)
pour prendre en compte les saisies sur cellules multiples...
''''''''' Private Sub Worksheet_Change(ByVal Target As Range) dim c as range Application.EnableEvents = False For each c in target.cells If c.value > 10 Then c = c / 10 next Application.EnableEvents = True End Sub '''''''''
mais il serait bon aussi de limiter dans la feuille à la plage de cellules , qui seule soit sensée réagir à ce change, (exemple a2:e100):
''''''''' Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect As Range, c As Range Set iSect = Intersect(Target, [a2:e100]) If iSect Is Nothing Then Exit Sub Application.EnableEvents = False For Each c In iSect.Cells If c.Value > 10 Then c = c / 10 Next Application.EnableEvents = True End Sub
''''''''' 'cdlt 'lSteph
Bonsoir tout le monde Pourquoi donc cette procédure transforme t'elle 12 en 1,2 (jusque là je comprends), mais aussi 125 en 1,25 au lieu de 12,5 (là, je comprends plus : d'où ma question) Private Sub Worksheet_Change(ByVal Target As Range)
If Range(Target.Address) > 10 Then Target = Range(Target.Address) / 10
End Sub
merci de l'explication si vous n'êtes pas largués comme moi.
Robert
LSteph
Bonjour Serge,
Tout à fait d'accord!
;-)
lSteph
Encore plus prudent :
Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect As Range, c As Range Set iSect = Intersect(Target, [a2:e100]) If iSect Is Nothing Then Exit Sub Application.EnableEvents = False For Each c In iSect If IsNumeric(c) And c > 10 Then c = c / 10 Next Application.EnableEvents = True End Sub
Serge
"LSteph" a écrit dans le message de news: %
Bonjour,
Voici deux autres possibilités (faut choisir)
pour prendre en compte les saisies sur cellules multiples...
''''''''' Private Sub Worksheet_Change(ByVal Target As Range) dim c as range Application.EnableEvents = False For each c in target.cells If c.value > 10 Then c = c / 10 next Application.EnableEvents = True End Sub '''''''''
mais il serait bon aussi de limiter dans la feuille à la plage de cellules , qui seule soit sensée réagir à ce change, (exemple a2:e100):
''''''''' Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect As Range, c As Range Set iSect = Intersect(Target, [a2:e100]) If iSect Is Nothing Then Exit Sub Application.EnableEvents = False For Each c In iSect.Cells If c.Value > 10 Then c = c / 10 Next Application.EnableEvents = True End Sub
''''''''' 'cdlt 'lSteph
Bonsoir tout le monde Pourquoi donc cette procédure transforme t'elle 12 en 1,2 (jusque là je comprends), mais aussi 125 en 1,25 au lieu de 12,5 (là, je comprends plus : d'où ma question) Private Sub Worksheet_Change(ByVal Target As Range)
If Range(Target.Address) > 10 Then Target = Range(Target.Address) / 10
End Sub
merci de l'explication si vous n'êtes pas largués comme moi.
Robert
Bonjour Serge,
Tout à fait d'accord!
;-)
lSteph
Encore plus prudent :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range, c As Range
Set iSect = Intersect(Target, [a2:e100])
If iSect Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In iSect
If IsNumeric(c) And c > 10 Then c = c / 10
Next
Application.EnableEvents = True
End Sub
Serge
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de news: %236ajIIEoHHA.4428@TK2MSFTNGP06.phx.gbl...
Bonjour,
Voici deux autres possibilités (faut choisir)
pour prendre en compte les saisies sur cellules multiples...
'''''''''
Private Sub Worksheet_Change(ByVal Target As Range)
dim c as range
Application.EnableEvents = False
For each c in target.cells
If c.value > 10 Then c = c / 10
next
Application.EnableEvents = True
End Sub
'''''''''
mais il serait bon aussi de limiter dans la feuille à la plage de cellules , qui seule soit sensée réagir à ce change, (exemple
a2:e100):
'''''''''
Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect As Range, c As Range
Set iSect = Intersect(Target, [a2:e100])
If iSect Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In iSect.Cells
If c.Value > 10 Then c = c / 10
Next
Application.EnableEvents = True
End Sub
'''''''''
'cdlt
'lSteph
Bonsoir tout le monde
Pourquoi donc cette procédure transforme t'elle 12 en 1,2 (jusque là je comprends), mais aussi 125 en 1,25 au lieu de 12,5 (là,
je comprends plus : d'où ma question)
Private Sub Worksheet_Change(ByVal Target As Range)
If Range(Target.Address) > 10 Then Target = Range(Target.Address) / 10
End Sub
merci de l'explication si vous n'êtes pas largués comme moi.
Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect As Range, c As Range Set iSect = Intersect(Target, [a2:e100]) If iSect Is Nothing Then Exit Sub Application.EnableEvents = False For Each c In iSect If IsNumeric(c) And c > 10 Then c = c / 10 Next Application.EnableEvents = True End Sub
Serge
"LSteph" a écrit dans le message de news: %
Bonjour,
Voici deux autres possibilités (faut choisir)
pour prendre en compte les saisies sur cellules multiples...
''''''''' Private Sub Worksheet_Change(ByVal Target As Range) dim c as range Application.EnableEvents = False For each c in target.cells If c.value > 10 Then c = c / 10 next Application.EnableEvents = True End Sub '''''''''
mais il serait bon aussi de limiter dans la feuille à la plage de cellules , qui seule soit sensée réagir à ce change, (exemple a2:e100):
''''''''' Private Sub Worksheet_Change(ByVal Target As Range) Dim iSect As Range, c As Range Set iSect = Intersect(Target, [a2:e100]) If iSect Is Nothing Then Exit Sub Application.EnableEvents = False For Each c In iSect.Cells If c.Value > 10 Then c = c / 10 Next Application.EnableEvents = True End Sub
''''''''' 'cdlt 'lSteph
Bonsoir tout le monde Pourquoi donc cette procédure transforme t'elle 12 en 1,2 (jusque là je comprends), mais aussi 125 en 1,25 au lieu de 12,5 (là, je comprends plus : d'où ma question) Private Sub Worksheet_Change(ByVal Target As Range)
If Range(Target.Address) > 10 Then Target = Range(Target.Address) / 10
End Sub
merci de l'explication si vous n'êtes pas largués comme moi.