Bonjour à tous
En D13:D50 je saisis un nombre de 2 chiffres. Si ce chiffre est >70, la
macro y ajoute 1900, sinon elle ajoute 2000.
Voici mon code initial
****
If Not Intersect(Target, [D13:D50]) Is Nothing Then
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + "1900"
Case Else
Target.Value = Target.Value + "2000"
End Select
End If
****
Et là il y a qqchose de bizarre :
Si je tape par erreur 1995, la validation de saisie me refuse cela, *mais
si* alors je resaisis 95, le résultat est "5795" au lieu de 1995. Que se
passe-t-il?
Bonjour à tous
En D13:D50 je saisis un nombre de 2 chiffres. Si ce chiffre est >70, la
macro y ajoute 1900, sinon elle ajoute 2000.
Voici mon code initial
****
If Not Intersect(Target, [D13:D50]) Is Nothing Then
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + "1900"
Case Else
Target.Value = Target.Value + "2000"
End Select
End If
****
Et là il y a qqchose de bizarre :
Si je tape par erreur 1995, la validation de saisie me refuse cela, *mais
si* alors je resaisis 95, le résultat est "5795" au lieu de 1995. Que se
passe-t-il?
Bonjour à tous
En D13:D50 je saisis un nombre de 2 chiffres. Si ce chiffre est >70, la
macro y ajoute 1900, sinon elle ajoute 2000.
Voici mon code initial
****
If Not Intersect(Target, [D13:D50]) Is Nothing Then
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + "1900"
Case Else
Target.Value = Target.Value + "2000"
End Select
End If
****
Et là il y a qqchose de bizarre :
Si je tape par erreur 1995, la validation de saisie me refuse cela, *mais
si* alors je resaisis 95, le résultat est "5795" au lieu de 1995. Que se
passe-t-il?
Bonjour à tous
En g13:d50 je saisis un nombre de 2 chiffres. Si ce chiffre est >70, la
macro y ajoute 1900, sinon elle ajoute 2000.
Voici mon code initial
****
If Not Intersect(Target, [D13:D50]) Is Nothing Then
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + "1900"
Case Else
Target.Value = Target.Value + "2000"
End Select
End If
****
Et là il y a qqchose de bizarre :
Si je tape par erreur 1995, la validation de saisie me refuse cela, *mais
si* alors je resaisis 95, le résultat est "5795" au lieu de 1995. Que se
passe-t-il?
*J'ai modifié le code* comme suit, mais comment si la saisie est sup à 99
simplement demander de resaisir et non seulement me vider la saisie?
****
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is < 70
Target.Value = Target.Value + "2000"
Case 70 To 99
Target.Value = Target.Value + "1900"
Case Is > 99
Target.Value = "" 'ligne à modifier
End Select
****
Merci pour l'aide.
Cordialement
J@@
Bonjour à tous
En g13:d50 je saisis un nombre de 2 chiffres. Si ce chiffre est >70, la
macro y ajoute 1900, sinon elle ajoute 2000.
Voici mon code initial
****
If Not Intersect(Target, [D13:D50]) Is Nothing Then
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + "1900"
Case Else
Target.Value = Target.Value + "2000"
End Select
End If
****
Et là il y a qqchose de bizarre :
Si je tape par erreur 1995, la validation de saisie me refuse cela, *mais
si* alors je resaisis 95, le résultat est "5795" au lieu de 1995. Que se
passe-t-il?
*J'ai modifié le code* comme suit, mais comment si la saisie est sup à 99
simplement demander de resaisir et non seulement me vider la saisie?
****
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is < 70
Target.Value = Target.Value + "2000"
Case 70 To 99
Target.Value = Target.Value + "1900"
Case Is > 99
Target.Value = "" 'ligne à modifier
End Select
****
Merci pour l'aide.
Cordialement
J@@
Bonjour à tous
En g13:d50 je saisis un nombre de 2 chiffres. Si ce chiffre est >70, la
macro y ajoute 1900, sinon elle ajoute 2000.
Voici mon code initial
****
If Not Intersect(Target, [D13:D50]) Is Nothing Then
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + "1900"
Case Else
Target.Value = Target.Value + "2000"
End Select
End If
****
Et là il y a qqchose de bizarre :
Si je tape par erreur 1995, la validation de saisie me refuse cela, *mais
si* alors je resaisis 95, le résultat est "5795" au lieu de 1995. Que se
passe-t-il?
*J'ai modifié le code* comme suit, mais comment si la saisie est sup à 99
simplement demander de resaisir et non seulement me vider la saisie?
****
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is < 70
Target.Value = Target.Value + "2000"
Case 70 To 99
Target.Value = Target.Value + "1900"
Case Is > 99
Target.Value = "" 'ligne à modifier
End Select
****
Merci pour l'aide.
Cordialement
J@@
Bonjour,
Si tu ne modifies qu'une donnée à la fois dans D13:D50,
ceci devrait convenir :
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing _
And Target.Count = 1 Then
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
SergeBonjour à tous
En D13:D50 je saisis un nombre de 2 chiffres. Si ce chiffre est >70, la
macro y ajoute 1900, sinon elle ajoute 2000.
Voici mon code initial
****
If Not Intersect(Target, [D13:D50]) Is Nothing Then
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + "1900"
Case Else
Target.Value = Target.Value + "2000"
End Select
End If
****
Et là il y a qqchose de bizarre :
Si je tape par erreur 1995, la validation de saisie me refuse cela, *mais
si* alors je resaisis 95, le résultat est "5795" au lieu de 1995. Que se
passe-t-il?
Bonjour,
Si tu ne modifies qu'une donnée à la fois dans D13:D50,
ceci devrait convenir :
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing _
And Target.Count = 1 Then
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
Serge
Bonjour à tous
En D13:D50 je saisis un nombre de 2 chiffres. Si ce chiffre est >70, la
macro y ajoute 1900, sinon elle ajoute 2000.
Voici mon code initial
****
If Not Intersect(Target, [D13:D50]) Is Nothing Then
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + "1900"
Case Else
Target.Value = Target.Value + "2000"
End Select
End If
****
Et là il y a qqchose de bizarre :
Si je tape par erreur 1995, la validation de saisie me refuse cela, *mais
si* alors je resaisis 95, le résultat est "5795" au lieu de 1995. Que se
passe-t-il?
Bonjour,
Si tu ne modifies qu'une donnée à la fois dans D13:D50,
ceci devrait convenir :
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing _
And Target.Count = 1 Then
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
SergeBonjour à tous
En D13:D50 je saisis un nombre de 2 chiffres. Si ce chiffre est >70, la
macro y ajoute 1900, sinon elle ajoute 2000.
Voici mon code initial
****
If Not Intersect(Target, [D13:D50]) Is Nothing Then
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + "1900"
Case Else
Target.Value = Target.Value + "2000"
End Select
End If
****
Et là il y a qqchose de bizarre :
Si je tape par erreur 1995, la validation de saisie me refuse cela, *mais
si* alors je resaisis 95, le résultat est "5795" au lieu de 1995. Que se
passe-t-il?
Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1 Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1 Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1 Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
> Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
C'est vraiment magique ces histoires de Target ...
Encore merci
et bonne journée
cordialement
J@@
Jacky a écrit :Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
> Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
C'est vraiment magique ces histoires de Target ...
Encore merci
et bonne journée
cordialement
J@@
Jacky a écrit :
Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
> Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
C'est vraiment magique ces histoires de Target ...
Encore merci
et bonne journée
cordialement
J@@
Jacky a écrit :Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Ne prendre que les deux caractères de droite.
Exemple :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Target.Offset(0, 1) = Right(Target, 2)
End Sub
Serge
"J@@"Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
C'est vraiment magique ces histoires de Target ...
Jacky a écrit :Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Ne prendre que les deux caractères de droite.
Exemple :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Target.Offset(0, 1) = Right(Target, 2)
End Sub
Serge
"J@@"
Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
C'est vraiment magique ces histoires de Target ...
Jacky a écrit :
Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Ne prendre que les deux caractères de droite.
Exemple :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Target.Offset(0, 1) = Right(Target, 2)
End Sub
Serge
"J@@"Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
C'est vraiment magique ces histoires de Target ...
Jacky a écrit :Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
Excellent
merci Serge
Il y a une richesse dans ces commandes...
la limite semble être l'imagination.
@+
Bonne journée
J@@
garnote a écrit :Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Ne prendre que les deux caractères de droite.
Exemple :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Target.Offset(0, 1) = Right(Target,
2)
End Sub
Serge
>"J@@"Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
C'est vraiment magique ces histoires de Target ...
Jacky a écrit :Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
Excellent
merci Serge
Il y a une richesse dans ces commandes...
la limite semble être l'imagination.
@+
Bonne journée
J@@
garnote a écrit :
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Ne prendre que les deux caractères de droite.
Exemple :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Target.Offset(0, 1) = Right(Target,
2)
End Sub
Serge
>
"J@@"
Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
C'est vraiment magique ces histoires de Target ...
Jacky a écrit :
Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
Excellent
merci Serge
Il y a une richesse dans ces commandes...
la limite semble être l'imagination.
@+
Bonne journée
J@@
garnote a écrit :Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Ne prendre que les deux caractères de droite.
Exemple :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Target.Offset(0, 1) = Right(Target,
2)
End Sub
Serge
>"J@@"Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
C'est vraiment magique ces histoires de Target ...
Jacky a écrit :Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
C'est vraiment magique ces histoires de Target ...
Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
C'est vraiment magique ces histoires de Target ...
Encore merci
et bonne journée
cordialement
J@@
Jacky a écrit :Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
C'est vraiment magique ces histoires de Target ...
Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
C'est vraiment magique ces histoires de Target ...
Encore merci
et bonne journée
cordialement
J@@
Jacky a écrit :
Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
C'est vraiment magique ces histoires de Target ...
Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
C'est vraiment magique ces histoires de Target ...
Encore merci
et bonne journée
cordialement
J@@
Jacky a écrit :Bonjour,
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
Re..C'est vraiment magique ces histoires de Target ...
Le problème dans ce cas n'était pas vraiment "target" mais
Case Is > 70
Target.Value = Target.Value + 1900
Si comme tu le précises, tu entres une saisie erronée de "1995"
1995 est plus grand que 70 donc ajout de 1900
1900+1995895
Alors que Target.Value = Right(Target, 2) (même si tu ne saisis que 2
chiffres)
1900+9595
Ps: Méfies toi des dates dont l'année est calculée sur 2 chiffres, sinon tu
ré-inventes le bug de l'an 2000.
;o))
Re..
C'est vraiment magique ces histoires de Target ...
Le problème dans ce cas n'était pas vraiment "target" mais
Case Is > 70
Target.Value = Target.Value + 1900
Si comme tu le précises, tu entres une saisie erronée de "1995"
1995 est plus grand que 70 donc ajout de 1900
1900+1995895
Alors que Target.Value = Right(Target, 2) (même si tu ne saisis que 2
chiffres)
1900+9595
Ps: Méfies toi des dates dont l'année est calculée sur 2 chiffres, sinon tu
ré-inventes le bug de l'an 2000.
;o))
Re..C'est vraiment magique ces histoires de Target ...
Le problème dans ce cas n'était pas vraiment "target" mais
Case Is > 70
Target.Value = Target.Value + 1900
Si comme tu le précises, tu entres une saisie erronée de "1995"
1995 est plus grand que 70 donc ajout de 1900
1900+1995895
Alors que Target.Value = Right(Target, 2) (même si tu ne saisis que 2
chiffres)
1900+9595
Ps: Méfies toi des dates dont l'année est calculée sur 2 chiffres, sinon tu
ré-inventes le bug de l'an 2000.
;o))
Pour le plaisir.
On peut même se permettre de franciser Target :-)
Private Sub Worksheet_Change(ByVal Cible As Range)
If Cible.Address = "$A$1" Then Cible.Offset(0, 1) = Right(Cible, 2)
End Sub
Serge
"J@@" .Excellent
merci Serge
garnote a écrit :Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Ne prendre que les deux caractères de droite.
Exemple :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Target.Offset(0, 1) = Right(Target,
2)
End Sub
Serge
>"J@@"Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Jacky a écrit :Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
Pour le plaisir.
On peut même se permettre de franciser Target :-)
Private Sub Worksheet_Change(ByVal Cible As Range)
If Cible.Address = "$A$1" Then Cible.Offset(0, 1) = Right(Cible, 2)
End Sub
Serge
"J@@" .
Excellent
merci Serge
garnote a écrit :
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Ne prendre que les deux caractères de droite.
Exemple :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Target.Offset(0, 1) = Right(Target,
2)
End Sub
Serge
>
"J@@"
Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Jacky a écrit :
Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------
Pour le plaisir.
On peut même se permettre de franciser Target :-)
Private Sub Worksheet_Change(ByVal Cible As Range)
If Cible.Address = "$A$1" Then Cible.Offset(0, 1) = Right(Cible, 2)
End Sub
Serge
"J@@" .Excellent
merci Serge
garnote a écrit :Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Ne prendre que les deux caractères de droite.
Exemple :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Target.Offset(0, 1) = Right(Target,
2)
End Sub
Serge
>"J@@"Bonjour Jacky
super cet ajout. Cela fonctionne comme souhaité.
Mais que veut dire au juste Right(Target,2) ?
=>"ne prendre en compte que les 2 chiffres de droite"?
Jacky a écrit :Rajoute:
Target.Value = Right(Target, 2)
au code de Serge
'---------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [D13:D50]) Is Nothing And Target.Count = 1
Then
Target.Value = Right(Target, 2)
Select Case Target.Value
Case Is = ""
Target.Value = ""
Case Is > 70
Target.Value = Target.Value + 1900
Case Else
Target.Value = Target.Value + 2000
End Select
End If
Application.EnableEvents = True
End Sub
'--------------------