j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que lorsque je
saisie un chiffre plus grand que celui existant dans une des cellules de ma
première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans la
même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre +1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6
alors F8=0 et toutes les autres cellules de D8 à U8=chiffre +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie
lorsqu'elle est liée à une macro:existe t-il une solution pour pallier à une
erreur de frappe?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacky
Bonsoir,
Essaie ceci: '----------- Public x '_______________________________________ Private Sub Worksheet_Change(ByVal Target As Range) If Not IsNumeric(Target) Then Exit Sub If Not Intersect(Target, [D3:U3]) Is Nothing Then If Target.Value > x Then For i = 4 To 21 Cells(8, i).Value = Cells(8, i).Value + 1 Next Cells(8, Target.Column) = 0 x = Target.Value End If End If End Sub
'________________________________________ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub x = Target.Value End Sub '--------------
-- Salutations JJ
"Chrisdolby" a écrit dans le message de news:
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que lorsque je saisie un chiffre plus grand que celui existant dans une des cellules de ma première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans la même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre +1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6 alors F8=0 et toutes les autres cellules de D8 à U8=chiffre +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie lorsqu'elle est liée à une macro:existe t-il une solution pour pallier à une erreur de frappe?
merci !
Chris
Bonsoir,
Essaie ceci:
'-----------
Public x
'_______________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
If Not IsNumeric(Target) Then Exit Sub
If Not Intersect(Target, [D3:U3]) Is Nothing Then
If Target.Value > x Then
For i = 4 To 21
Cells(8, i).Value = Cells(8, i).Value + 1
Next
Cells(8, Target.Column) = 0
x = Target.Value
End If
End If
End Sub
'________________________________________
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Target.Value
End Sub
'--------------
--
Salutations
JJ
"Chrisdolby" <Chrisdolby@discussions.microsoft.com> a écrit dans le message
de news: F879E2A8-D059-4AE5-81AD-41D69DB9E973@microsoft.com...
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que lorsque
je
saisie un chiffre plus grand que celui existant dans une des cellules de
ma
première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans
la
même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre +1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6
alors F8=0 et toutes les autres cellules de D8 à U8=chiffre +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie
lorsqu'elle est liée à une macro:existe t-il une solution pour pallier à
une
erreur de frappe?
Essaie ceci: '----------- Public x '_______________________________________ Private Sub Worksheet_Change(ByVal Target As Range) If Not IsNumeric(Target) Then Exit Sub If Not Intersect(Target, [D3:U3]) Is Nothing Then If Target.Value > x Then For i = 4 To 21 Cells(8, i).Value = Cells(8, i).Value + 1 Next Cells(8, Target.Column) = 0 x = Target.Value End If End If End Sub
'________________________________________ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub x = Target.Value End Sub '--------------
-- Salutations JJ
"Chrisdolby" a écrit dans le message de news:
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que lorsque je saisie un chiffre plus grand que celui existant dans une des cellules de ma première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans la même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre +1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6 alors F8=0 et toutes les autres cellules de D8 à U8=chiffre +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie lorsqu'elle est liée à une macro:existe t-il une solution pour pallier à une erreur de frappe?
merci !
Chris
JB
Bonsoir,
http://cjoint.com/?cqtErmDpYv
Dim m, m2, m3 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect([D3:U3], Target) Is Nothing And Target.Count = 1 Then Application.EnableEvents = False If [mémo] <> "" Then If Target > CDbl([mémo]) Then m = [D8:U8] m2 = [mémo] m3 = Target.Address For i = 4 To 21 Cells(8, i) = Cells(8, i) + 1 Next i Cells(8, Target.Column) = 0 End If End If End If Application.EnableEvents = True End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect([D3:U3], 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 annule() If m2 <> "" Then [D8:U8] = m Range(m3) = m2 m2 = "" End If End Sub
JB
On 16 fév, 19:11, "Jacky" wrote:
Bonsoir,
Essaie ceci: '----------- Public x '_______________________________________ Private Sub Worksheet_Change(ByVal Target As Range) If Not IsNumeric(Target) Then Exit Sub If Not Intersect(Target, [D3:U3]) Is Nothing Then If Target.Value > x Then For i = 4 To 21 Cells(8, i).Value = Cells(8, i).Value + 1 Next Cells(8, Target.Column) = 0 x = Target.Value End If End If End Sub
'________________________________________ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub x = Target.Value End Sub '--------------
-- Salutations JJ
"Chrisdolby" a écrit dans le mes sage denews: F879E2A8-D059-4AE5-81AD-41D69DB9E__BEGIN_MASK_n#9g02mG7!__...__EN D_MASK_i?a63jfAD$
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que lorsq ue je saisie un chiffre plus grand que celui existant dans une des cellules de ma première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans la même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre +1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6 alors F8=0 et toutes les autres cellules de D8 à U8=chiffr e +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie lorsqu'elle est liée à une macro:existe t-il une solution pour pall ier à une erreur de frappe?
merci !
Chris- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonsoir,
http://cjoint.com/?cqtErmDpYv
Dim m, m2, m3
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([D3:U3], Target) Is Nothing And Target.Count = 1
Then
Application.EnableEvents = False
If [mémo] <> "" Then
If Target > CDbl([mémo]) Then
m = [D8:U8]
m2 = [mémo]
m3 = Target.Address
For i = 4 To 21
Cells(8, i) = Cells(8, i) + 1
Next i
Cells(8, Target.Column) = 0
End If
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([D3:U3], 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 annule()
If m2 <> "" Then
[D8:U8] = m
Range(m3) = m2
m2 = ""
End If
End Sub
JB
On 16 fév, 19:11, "Jacky" <Dup...@dupont.fr> wrote:
Bonsoir,
Essaie ceci:
'-----------
Public x
'_______________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
If Not IsNumeric(Target) Then Exit Sub
If Not Intersect(Target, [D3:U3]) Is Nothing Then
If Target.Value > x Then
For i = 4 To 21
Cells(8, i).Value = Cells(8, i).Value + 1
Next
Cells(8, Target.Column) = 0
x = Target.Value
End If
End If
End Sub
'________________________________________
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Target.Value
End Sub
'--------------
--
Salutations
JJ
"Chrisdolby" <Chrisdo...@discussions.microsoft.com> a écrit dans le mes sage
denews: F879E2A8-D059-4AE5-81AD-41D69DB9E__BEGIN_MASK_n#9g02mG7!__...__EN D_MASK_i?a63jfAD$z__@microsoft.com...
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que lorsq ue
je
saisie un chiffre plus grand que celui existant dans une des cellules de
ma
première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans
la
même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre +1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6
alors F8=0 et toutes les autres cellules de D8 à U8=chiffr e +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie
lorsqu'elle est liée à une macro:existe t-il une solution pour pall ier à
une
erreur de frappe?
Dim m, m2, m3 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect([D3:U3], Target) Is Nothing And Target.Count = 1 Then Application.EnableEvents = False If [mémo] <> "" Then If Target > CDbl([mémo]) Then m = [D8:U8] m2 = [mémo] m3 = Target.Address For i = 4 To 21 Cells(8, i) = Cells(8, i) + 1 Next i Cells(8, Target.Column) = 0 End If End If End If Application.EnableEvents = True End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect([D3:U3], 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 annule() If m2 <> "" Then [D8:U8] = m Range(m3) = m2 m2 = "" End If End Sub
JB
On 16 fév, 19:11, "Jacky" wrote:
Bonsoir,
Essaie ceci: '----------- Public x '_______________________________________ Private Sub Worksheet_Change(ByVal Target As Range) If Not IsNumeric(Target) Then Exit Sub If Not Intersect(Target, [D3:U3]) Is Nothing Then If Target.Value > x Then For i = 4 To 21 Cells(8, i).Value = Cells(8, i).Value + 1 Next Cells(8, Target.Column) = 0 x = Target.Value End If End If End Sub
'________________________________________ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub x = Target.Value End Sub '--------------
-- Salutations JJ
"Chrisdolby" a écrit dans le mes sage denews: F879E2A8-D059-4AE5-81AD-41D69DB9E__BEGIN_MASK_n#9g02mG7!__...__EN D_MASK_i?a63jfAD$
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que lorsq ue je saisie un chiffre plus grand que celui existant dans une des cellules de ma première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans la même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre +1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6 alors F8=0 et toutes les autres cellules de D8 à U8=chiffr e +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie lorsqu'elle est liée à une macro:existe t-il une solution pour pall ier à une erreur de frappe?
merci !
Chris- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
JB
Bonsoir,
Si le curseur n'est pas déplacé à l'ouverture du classeur, la variable x ne mémorise pas l'ancienne valeur. Elle sera égale à 0 En utilisant un nom, l'ancienne valeur de la cellule (où est située le curseur ) est sauvegardée avec le classeur et donc restituée à l'ouverture.
JB
,On 16 fév, 19:11, "Jacky" wrote:
Bonsoir,
Essaie ceci: '----------- Public x '_______________________________________ Private Sub Worksheet_Change(ByVal Target As Range) If Not IsNumeric(Target) Then Exit Sub If Not Intersect(Target, [D3:U3]) Is Nothing Then If Target.Value > x Then For i = 4 To 21 Cells(8, i).Value = Cells(8, i).Value + 1 Next Cells(8, Target.Column) = 0 x = Target.Value End If End If End Sub
'________________________________________ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub x = Target.Value End Sub '--------------
-- Salutations JJ
"Chrisdolby" a écrit dans le mes sage denews: F879E2A8-D059-4AE5-81AD-41D69DB9E__BEGIN_MASK_n#9g02mG7!__...__EN D_MASK_i?a63jfAD$
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que lorsq ue je saisie un chiffre plus grand que celui existant dans une des cellules de ma première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans la même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre +1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6 alors F8=0 et toutes les autres cellules de D8 à U8=chiffr e +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie lorsqu'elle est liée à une macro:existe t-il une solution pour pall ier à une erreur de frappe?
merci !
Chris- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonsoir,
Si le curseur n'est pas déplacé à l'ouverture du classeur, la variable
x ne mémorise pas l'ancienne valeur. Elle sera égale à 0
En utilisant un nom, l'ancienne valeur de la cellule (où est située le
curseur ) est sauvegardée avec le classeur et donc restituée à
l'ouverture.
Essaie ceci:
'-----------
Public x
'_______________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
If Not IsNumeric(Target) Then Exit Sub
If Not Intersect(Target, [D3:U3]) Is Nothing Then
If Target.Value > x Then
For i = 4 To 21
Cells(8, i).Value = Cells(8, i).Value + 1
Next
Cells(8, Target.Column) = 0
x = Target.Value
End If
End If
End Sub
'________________________________________
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Target.Value
End Sub
'--------------
--
Salutations
JJ
"Chrisdolby" <Chrisdo...@discussions.microsoft.com> a écrit dans le mes sage
denews: F879E2A8-D059-4AE5-81AD-41D69DB9E__BEGIN_MASK_n#9g02mG7!__...__EN D_MASK_i?a63jfAD$z__@microsoft.com...
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que lorsq ue
je
saisie un chiffre plus grand que celui existant dans une des cellules de
ma
première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans
la
même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre +1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6
alors F8=0 et toutes les autres cellules de D8 à U8=chiffr e +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie
lorsqu'elle est liée à une macro:existe t-il une solution pour pall ier à
une
erreur de frappe?
Si le curseur n'est pas déplacé à l'ouverture du classeur, la variable x ne mémorise pas l'ancienne valeur. Elle sera égale à 0 En utilisant un nom, l'ancienne valeur de la cellule (où est située le curseur ) est sauvegardée avec le classeur et donc restituée à l'ouverture.
JB
,On 16 fév, 19:11, "Jacky" wrote:
Bonsoir,
Essaie ceci: '----------- Public x '_______________________________________ Private Sub Worksheet_Change(ByVal Target As Range) If Not IsNumeric(Target) Then Exit Sub If Not Intersect(Target, [D3:U3]) Is Nothing Then If Target.Value > x Then For i = 4 To 21 Cells(8, i).Value = Cells(8, i).Value + 1 Next Cells(8, Target.Column) = 0 x = Target.Value End If End If End Sub
'________________________________________ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub x = Target.Value End Sub '--------------
-- Salutations JJ
"Chrisdolby" a écrit dans le mes sage denews: F879E2A8-D059-4AE5-81AD-41D69DB9E__BEGIN_MASK_n#9g02mG7!__...__EN D_MASK_i?a63jfAD$
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que lorsq ue je saisie un chiffre plus grand que celui existant dans une des cellules de ma première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans la même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre +1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6 alors F8=0 et toutes les autres cellules de D8 à U8=chiffr e +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie lorsqu'elle est liée à une macro:existe t-il une solution pour pall ier à une erreur de frappe?
merci !
Chris- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Jacky
Bonjour JB
Merci d'avoir relevé cet obstacle.
Comme toujours, au top, JB
-- Salutations JJ
"JB" a écrit dans le message de news:
Bonsoir,
Si le curseur n'est pas déplacé à l'ouverture du classeur, la variable x ne mémorise pas l'ancienne valeur. Elle sera égale à 0 En utilisant un nom, l'ancienne valeur de la cellule (où est située le curseur ) est sauvegardée avec le classeur et donc restituée à l'ouverture.
JB
,On 16 fév, 19:11, "Jacky" wrote:
Bonsoir,
Essaie ceci: '----------- Public x '_______________________________________ Private Sub Worksheet_Change(ByVal Target As Range) If Not IsNumeric(Target) Then Exit Sub If Not Intersect(Target, [D3:U3]) Is Nothing Then If Target.Value > x Then For i = 4 To 21 Cells(8, i).Value = Cells(8, i).Value + 1 Next Cells(8, Target.Column) = 0 x = Target.Value End If End If End Sub
'________________________________________ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub x = Target.Value End Sub '--------------
-- Salutations JJ
"Chrisdolby" a écrit dans le message denews: F879E2A8-D059-4AE5-81AD-41D69DB9E__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que lorsque je saisie un chiffre plus grand que celui existant dans une des cellules de ma première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans la même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre +1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6 alors F8=0 et toutes les autres cellules de D8 à U8=chiffre +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie lorsqu'elle est liée à une macro:existe t-il une solution pour pallier à une erreur de frappe?
merci !
Chris- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour JB
Merci d'avoir relevé cet obstacle.
Comme toujours, au top, JB
--
Salutations
JJ
"JB" <boisgontier@hotmail.com> a écrit dans le message de news:
1171651195.090958.99650@s48g2000cws.googlegroups.com...
Bonsoir,
Si le curseur n'est pas déplacé à l'ouverture du classeur, la variable
x ne mémorise pas l'ancienne valeur. Elle sera égale à 0
En utilisant un nom, l'ancienne valeur de la cellule (où est située le
curseur ) est sauvegardée avec le classeur et donc restituée à
l'ouverture.
Essaie ceci:
'-----------
Public x
'_______________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
If Not IsNumeric(Target) Then Exit Sub
If Not Intersect(Target, [D3:U3]) Is Nothing Then
If Target.Value > x Then
For i = 4 To 21
Cells(8, i).Value = Cells(8, i).Value + 1
Next
Cells(8, Target.Column) = 0
x = Target.Value
End If
End If
End Sub
'________________________________________
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Target.Value
End Sub
'--------------
--
Salutations
JJ
"Chrisdolby" <Chrisdo...@discussions.microsoft.com> a écrit dans le
message
denews:
F879E2A8-D059-4AE5-81AD-41D69DB9E__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$z__@microsoft.com...
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que
lorsque
je
saisie un chiffre plus grand que celui existant dans une des cellules de
ma
première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans
la
même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre
+1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6
alors F8=0 et toutes les autres cellules de D8 à U8=chiffre +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie
lorsqu'elle est liée à une macro:existe t-il une solution pour pallier à
une
erreur de frappe?
Si le curseur n'est pas déplacé à l'ouverture du classeur, la variable x ne mémorise pas l'ancienne valeur. Elle sera égale à 0 En utilisant un nom, l'ancienne valeur de la cellule (où est située le curseur ) est sauvegardée avec le classeur et donc restituée à l'ouverture.
JB
,On 16 fév, 19:11, "Jacky" wrote:
Bonsoir,
Essaie ceci: '----------- Public x '_______________________________________ Private Sub Worksheet_Change(ByVal Target As Range) If Not IsNumeric(Target) Then Exit Sub If Not Intersect(Target, [D3:U3]) Is Nothing Then If Target.Value > x Then For i = 4 To 21 Cells(8, i).Value = Cells(8, i).Value + 1 Next Cells(8, Target.Column) = 0 x = Target.Value End If End If End Sub
'________________________________________ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub x = Target.Value End Sub '--------------
-- Salutations JJ
"Chrisdolby" a écrit dans le message denews: F879E2A8-D059-4AE5-81AD-41D69DB9E__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que lorsque je saisie un chiffre plus grand que celui existant dans une des cellules de ma première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans la même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre +1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6 alors F8=0 et toutes les autres cellules de D8 à U8=chiffre +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie lorsqu'elle est liée à une macro:existe t-il une solution pour pallier à une erreur de frappe?
merci !
Chris- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Chrisdolby
Bonjour
merci à vous deux!
ça fonctionne!
Chris
Bonjour JB
Merci d'avoir relevé cet obstacle.
Comme toujours, au top, JB
-- Salutations JJ
"JB" a écrit dans le message de news:
Bonsoir,
Si le curseur n'est pas déplacé à l'ouverture du classeur, la variable x ne mémorise pas l'ancienne valeur. Elle sera égale à 0 En utilisant un nom, l'ancienne valeur de la cellule (où est située le curseur ) est sauvegardée avec le classeur et donc restituée à l'ouverture.
JB
,On 16 fév, 19:11, "Jacky" wrote:
Bonsoir,
Essaie ceci: '----------- Public x '_______________________________________ Private Sub Worksheet_Change(ByVal Target As Range) If Not IsNumeric(Target) Then Exit Sub If Not Intersect(Target, [D3:U3]) Is Nothing Then If Target.Value > x Then For i = 4 To 21 Cells(8, i).Value = Cells(8, i).Value + 1 Next Cells(8, Target.Column) = 0 x = Target.Value End If End If End Sub
'________________________________________ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub x = Target.Value End Sub '--------------
-- Salutations JJ
"Chrisdolby" a écrit dans le message denews: F879E2A8-D059-4AE5-81AD-41D69DB9E__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que lorsque je saisie un chiffre plus grand que celui existant dans une des cellules de ma première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans la même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre +1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6 alors F8=0 et toutes les autres cellules de D8 à U8=chiffre +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie lorsqu'elle est liée à une macro:existe t-il une solution pour pallier à une erreur de frappe?
merci !
Chris- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour
merci à vous deux!
ça fonctionne!
Chris
Bonjour JB
Merci d'avoir relevé cet obstacle.
Comme toujours, au top, JB
--
Salutations
JJ
"JB" <boisgontier@hotmail.com> a écrit dans le message de news:
1171651195.090958.99650@s48g2000cws.googlegroups.com...
Bonsoir,
Si le curseur n'est pas déplacé à l'ouverture du classeur, la variable
x ne mémorise pas l'ancienne valeur. Elle sera égale à 0
En utilisant un nom, l'ancienne valeur de la cellule (où est située le
curseur ) est sauvegardée avec le classeur et donc restituée à
l'ouverture.
Essaie ceci:
'-----------
Public x
'_______________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
If Not IsNumeric(Target) Then Exit Sub
If Not Intersect(Target, [D3:U3]) Is Nothing Then
If Target.Value > x Then
For i = 4 To 21
Cells(8, i).Value = Cells(8, i).Value + 1
Next
Cells(8, Target.Column) = 0
x = Target.Value
End If
End If
End Sub
'________________________________________
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Target.Value
End Sub
'--------------
--
Salutations
JJ
"Chrisdolby" <Chrisdo...@discussions.microsoft.com> a écrit dans le
message
denews:
F879E2A8-D059-4AE5-81AD-41D69DB9E__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$z__@microsoft.com...
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que
lorsque
je
saisie un chiffre plus grand que celui existant dans une des cellules de
ma
première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans
la
même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre
+1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6
alors F8=0 et toutes les autres cellules de D8 à U8=chiffre +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie
lorsqu'elle est liée à une macro:existe t-il une solution pour pallier à
une
erreur de frappe?
Si le curseur n'est pas déplacé à l'ouverture du classeur, la variable x ne mémorise pas l'ancienne valeur. Elle sera égale à 0 En utilisant un nom, l'ancienne valeur de la cellule (où est située le curseur ) est sauvegardée avec le classeur et donc restituée à l'ouverture.
JB
,On 16 fév, 19:11, "Jacky" wrote:
Bonsoir,
Essaie ceci: '----------- Public x '_______________________________________ Private Sub Worksheet_Change(ByVal Target As Range) If Not IsNumeric(Target) Then Exit Sub If Not Intersect(Target, [D3:U3]) Is Nothing Then If Target.Value > x Then For i = 4 To 21 Cells(8, i).Value = Cells(8, i).Value + 1 Next Cells(8, Target.Column) = 0 x = Target.Value End If End If End Sub
'________________________________________ Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub x = Target.Value End Sub '--------------
-- Salutations JJ
"Chrisdolby" a écrit dans le message denews: F879E2A8-D059-4AE5-81AD-41D69DB9E__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i?a63jfAD$
Bonjour,
j'ai 2 plages de cellules (D3;U3) et (D8;U8). Je souhaiterais que lorsque je saisie un chiffre plus grand que celui existant dans une des cellules de ma première ligne (de D3 à U3), la cellule en dessous (entre D8 et U8) dans la même colonne affiche 0 et les autres (entre D8 et U8) affiche chiffre +1.
ex: chiffre actuel en F3=4, je saisie 6 donc F3=6 alors F8=0 et toutes les autres cellules de D8 à U8=chiffre +1
Par ailleurs, il semblerait qu'il soit impossible d'annuler une saisie lorsqu'elle est liée à une macro:existe t-il une solution pour pallier à une erreur de frappe?