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
****
Mais mon problème me donnait 5795 : saisie erronée 1995 contrôle de validation bloque, demande ressaisie, OK, nouvelle saisie 95 => résultat 5795.
Là c'est le "Ressaisie" le fautif ;o) J'ai pas vu la boucle, mais certainement...ou manque de "Application.EnableEvents = False" 1tour 1995+1900895 2ème tour target895 et....... 3895+1900W95 CQFD :o)
Pourquoi 1900 plutôt que "1900" ?
Dans ce cas les deux fonctionnent (xl transforme), mais pourquoi prendre du texte("1900") et ajouter un chiffre(95 pour 1995)
HS............................ A un moment j'ai lu
Mais il faudra que je modifie cela en 2070. Si Excel et moi sommes encore à la plage...
Plage pour page..... Je me suis dit....ah! le veinard ;o)))) .............................. -- Salutations JJ
"J@@" a écrit dans le message de news:
Bonjour Jacky > 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.
:-)) pour une fois que j'aurai inventé quelque chose ;-)
En fait il s'agit d'un format imposé :
Saisie périodes : Début - Fin // Calcul auto durée J M A J M A // A M J 09 03 2007 31 03 2007 // 0 0 23
Les utilisateurs saisissant souvent les années bizarrement, j'ai mis cette pro événementielle pour que la saisie se fasse en 2 chiffres. Mais il faudra que je modifie cela en 2070. Si Excel et moi sommes encore à la page...
Mais mon problème me donnait 5795 : saisie erronée 1995 contrôle de validation bloque, demande ressaisie, OK, nouvelle saisie 95 => résultat 5795.
je pense que l'aller-retour par le contrôle de validation doit me chambouler le bastringue, mais comment?
Un petit point :
Pourquoi 1900 plutôt que "1900" ?
@+ J@@
Re...
Mais mon problème me donnait 5795 :
saisie erronée 1995
contrôle de validation bloque, demande ressaisie,
OK, nouvelle saisie 95 => résultat 5795.
Là c'est le "Ressaisie" le fautif ;o)
J'ai pas vu la boucle, mais certainement...ou manque de
"Application.EnableEvents = False"
1tour 1995+1900895
2ème tour target895 et.......
3895+1900W95
CQFD :o)
Pourquoi 1900 plutôt que "1900" ?
Dans ce cas les deux fonctionnent (xl transforme), mais pourquoi prendre du
texte("1900") et ajouter un chiffre(95 pour 1995)
HS............................
A un moment j'ai lu
Mais il faudra que je modifie cela en 2070. Si Excel et moi sommes encore
à la plage...
Plage pour page.....
Je me suis dit....ah! le veinard
;o))))
..............................
--
Salutations
JJ
"J@@" <allezvoir@yeur.fr> a écrit dans le message de news:
Oec6q9k2JHA.1196@TK2MSFTNGP03.phx.gbl...
Bonjour Jacky
> 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.
:-))
pour une fois que j'aurai inventé quelque chose ;-)
En fait il s'agit d'un format imposé :
Saisie périodes :
Début - Fin // Calcul auto durée
J M A J M A // A M J
09 03 2007 31 03 2007 // 0 0 23
Les utilisateurs saisissant souvent les années bizarrement, j'ai mis cette
pro événementielle pour que la saisie se fasse en 2 chiffres.
Mais il faudra que je modifie cela en 2070. Si Excel et moi sommes encore
à la page...
Mais mon problème me donnait 5795 :
saisie erronée 1995
contrôle de validation bloque, demande ressaisie,
OK, nouvelle saisie 95 => résultat 5795.
je pense que l'aller-retour par le contrôle de validation doit me
chambouler le bastringue, mais comment?
Mais mon problème me donnait 5795 : saisie erronée 1995 contrôle de validation bloque, demande ressaisie, OK, nouvelle saisie 95 => résultat 5795.
Là c'est le "Ressaisie" le fautif ;o) J'ai pas vu la boucle, mais certainement...ou manque de "Application.EnableEvents = False" 1tour 1995+1900895 2ème tour target895 et....... 3895+1900W95 CQFD :o)
Pourquoi 1900 plutôt que "1900" ?
Dans ce cas les deux fonctionnent (xl transforme), mais pourquoi prendre du texte("1900") et ajouter un chiffre(95 pour 1995)
HS............................ A un moment j'ai lu
Mais il faudra que je modifie cela en 2070. Si Excel et moi sommes encore à la plage...
Plage pour page..... Je me suis dit....ah! le veinard ;o)))) .............................. -- Salutations JJ
"J@@" a écrit dans le message de news:
Bonjour Jacky > 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.
:-)) pour une fois que j'aurai inventé quelque chose ;-)
En fait il s'agit d'un format imposé :
Saisie périodes : Début - Fin // Calcul auto durée J M A J M A // A M J 09 03 2007 31 03 2007 // 0 0 23
Les utilisateurs saisissant souvent les années bizarrement, j'ai mis cette pro événementielle pour que la saisie se fasse en 2 chiffres. Mais il faudra que je modifie cela en 2070. Si Excel et moi sommes encore à la page...
Mais mon problème me donnait 5795 : saisie erronée 1995 contrôle de validation bloque, demande ressaisie, OK, nouvelle saisie 95 => résultat 5795.
je pense que l'aller-retour par le contrôle de validation doit me chambouler le bastringue, mais comment?
Un petit point :
Pourquoi 1900 plutôt que "1900" ?
@+ J@@
Modeste
Bonsour® J@@ avec ferveur ;o))) vous nous disiez :
Là on devient puriste
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
Mais que veut dire au juste Right(Target,2) ?
;o))) il faut que ce soit un Canadien qui nous rappelle que l'on est sur un news francophone !!! ;o)))
;o))) pourquoi pas ? Private Sub Worksheet_Change(ByVal Crisse As Range) If Crisse.Address = "$A$1" Then Crisse.Offset(0, 1) = Right(Crisse, 2) End Sub
ou encore Private Sub Worksheet_Change(ByVal Fare As Range) If Fare.Address = "$A$1" Then Fare.Offset(0, 1) = Right(Fare, 2) End Sub
Aué Mai taï api ;o)))
Bonsour® J@@ avec ferveur ;o))) vous nous disiez :
Là on devient puriste
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
Mais que veut dire au juste Right(Target,2) ?
;o)))
il faut que ce soit un Canadien qui nous rappelle que l'on est sur un news francophone !!! ;o)))
;o))) pourquoi pas ?
Private Sub Worksheet_Change(ByVal Crisse As Range)
If Crisse.Address = "$A$1" Then Crisse.Offset(0, 1) = Right(Crisse, 2)
End Sub
ou encore
Private Sub Worksheet_Change(ByVal Fare As Range)
If Fare.Address = "$A$1" Then Fare.Offset(0, 1) = Right(Fare, 2)
End Sub
Bonsour® J@@ avec ferveur ;o))) vous nous disiez :
Là on devient puriste
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
Mais que veut dire au juste Right(Target,2) ?
;o))) il faut que ce soit un Canadien qui nous rappelle que l'on est sur un news francophone !!! ;o)))
;o))) pourquoi pas ? Private Sub Worksheet_Change(ByVal Crisse As Range) If Crisse.Address = "$A$1" Then Crisse.Offset(0, 1) = Right(Crisse, 2) End Sub
ou encore Private Sub Worksheet_Change(ByVal Fare As Range) If Fare.Address = "$A$1" Then Fare.Offset(0, 1) = Right(Fare, 2) End Sub
Aué Mai taï api ;o)))
garnote
Ia ora na te taeae,
;o))) il faut que ce soit un Canadien qui nous rappelle que l'on est sur un news francophone !!! ;o)))
il faut que ce soit un Québécois qui nous rappelle que l'on est sur un groupe de discussion francophone !!! ;o)))
;o))) pourquoi pas ? Private Sub Worksheet_Change(ByVal Crisse As Range) If Crisse.Address = "$A$1" Then Crisse.Offset(0, 1) = Right(Crisse, 2) End Sub
ou bien Private Sub Worksheet_Change(ByVal ise As Range) If ise.Address = "$A$1" Then ise.Offset(0, 1) = Right(ise, 2) End Sub
ou encore Private Sub Worksheet_Change(ByVal Fare As Range) If Fare.Address = "$A$1" Then Fare.Offset(0, 1) = Right(Fare, 2) End Sub
ou bien Private Sub Worksheet_Change(ByVal Fiu As Range) If Fiu.Address = "$A$1" Then Fiu.Offset(0, 1) = Right(Fiu, 2) End Sub
Ia maitai oe iteie mahana ;o)))
Ia ora na te taeae,
;o)))
il faut que ce soit un Canadien qui nous rappelle que l'on est sur un news
francophone !!! ;o)))
il faut que ce soit un Québécois qui nous rappelle que l'on est sur un
groupe de discussion francophone !!! ;o)))
;o))) pourquoi pas ?
Private Sub Worksheet_Change(ByVal Crisse As Range)
If Crisse.Address = "$A$1" Then Crisse.Offset(0, 1) = Right(Crisse, 2)
End Sub
ou bien
Private Sub Worksheet_Change(ByVal ise As Range)
If ise.Address = "$A$1" Then ise.Offset(0, 1) = Right(ise, 2)
End Sub
ou encore
Private Sub Worksheet_Change(ByVal Fare As Range)
If Fare.Address = "$A$1" Then Fare.Offset(0, 1) = Right(Fare, 2)
End Sub
ou bien
Private Sub Worksheet_Change(ByVal Fiu As Range)
If Fiu.Address = "$A$1" Then Fiu.Offset(0, 1) = Right(Fiu, 2)
End Sub
;o))) il faut que ce soit un Canadien qui nous rappelle que l'on est sur un news francophone !!! ;o)))
il faut que ce soit un Québécois qui nous rappelle que l'on est sur un groupe de discussion francophone !!! ;o)))
;o))) pourquoi pas ? Private Sub Worksheet_Change(ByVal Crisse As Range) If Crisse.Address = "$A$1" Then Crisse.Offset(0, 1) = Right(Crisse, 2) End Sub
ou bien Private Sub Worksheet_Change(ByVal ise As Range) If ise.Address = "$A$1" Then ise.Offset(0, 1) = Right(ise, 2) End Sub
ou encore Private Sub Worksheet_Change(ByVal Fare As Range) If Fare.Address = "$A$1" Then Fare.Offset(0, 1) = Right(Fare, 2) End Sub
ou bien Private Sub Worksheet_Change(ByVal Fiu As Range) If Fiu.Address = "$A$1" Then Fiu.Offset(0, 1) = Right(Fiu, 2) End Sub
Ia maitai oe iteie mahana ;o)))
J
Ia ora na 'orua Même toi Serge tu te mets au tahitien :-) Chti et Québecois, même combat ! Aue te aue Te aroha ia rahi J@@
garnote a écrit :
Ia ora na te taeae,
;o))) il faut que ce soit un Canadien qui nous rappelle que l'on est sur un news francophone !!! ;o)))
il faut que ce soit un Québécois qui nous rappelle que l'on est sur un groupe de discussion francophone !!! ;o)))
;o))) pourquoi pas ? Private Sub Worksheet_Change(ByVal Crisse As Range) If Crisse.Address = "$A$1" Then Crisse.Offset(0, 1) = Right(Crisse, 2) End Sub
ou bien Private Sub Worksheet_Change(ByVal ise As Range) If ise.Address = "$A$1" Then ise.Offset(0, 1) = Right(ise, 2) End Sub
ou encore Private Sub Worksheet_Change(ByVal Fare As Range) If Fare.Address = "$A$1" Then Fare.Offset(0, 1) = Right(Fare, 2) End Sub
ou bien Private Sub Worksheet_Change(ByVal Fiu As Range) If Fiu.Address = "$A$1" Then Fiu.Offset(0, 1) = Right(Fiu, 2) End Sub
Ia maitai oe iteie mahana ;o)))
Ia ora na 'orua
Même toi Serge tu te mets au tahitien :-)
Chti et Québecois, même combat !
Aue te aue
Te aroha ia rahi
J@@
garnote a écrit :
Ia ora na te taeae,
;o)))
il faut que ce soit un Canadien qui nous rappelle que l'on est sur un news
francophone !!! ;o)))
il faut que ce soit un Québécois qui nous rappelle que l'on est sur un
groupe de discussion francophone !!! ;o)))
;o))) pourquoi pas ?
Private Sub Worksheet_Change(ByVal Crisse As Range)
If Crisse.Address = "$A$1" Then Crisse.Offset(0, 1) = Right(Crisse, 2)
End Sub
ou bien
Private Sub Worksheet_Change(ByVal ise As Range)
If ise.Address = "$A$1" Then ise.Offset(0, 1) = Right(ise, 2)
End Sub
ou encore
Private Sub Worksheet_Change(ByVal Fare As Range)
If Fare.Address = "$A$1" Then Fare.Offset(0, 1) = Right(Fare, 2)
End Sub
ou bien
Private Sub Worksheet_Change(ByVal Fiu As Range)
If Fiu.Address = "$A$1" Then Fiu.Offset(0, 1) = Right(Fiu, 2)
End Sub
Ia ora na 'orua Même toi Serge tu te mets au tahitien :-) Chti et Québecois, même combat ! Aue te aue Te aroha ia rahi J@@
garnote a écrit :
Ia ora na te taeae,
;o))) il faut que ce soit un Canadien qui nous rappelle que l'on est sur un news francophone !!! ;o)))
il faut que ce soit un Québécois qui nous rappelle que l'on est sur un groupe de discussion francophone !!! ;o)))
;o))) pourquoi pas ? Private Sub Worksheet_Change(ByVal Crisse As Range) If Crisse.Address = "$A$1" Then Crisse.Offset(0, 1) = Right(Crisse, 2) End Sub
ou bien Private Sub Worksheet_Change(ByVal ise As Range) If ise.Address = "$A$1" Then ise.Offset(0, 1) = Right(ise, 2) End Sub
ou encore Private Sub Worksheet_Change(ByVal Fare As Range) If Fare.Address = "$A$1" Then Fare.Offset(0, 1) = Right(Fare, 2) End Sub
ou bien Private Sub Worksheet_Change(ByVal Fiu As Range) If Fiu.Address = "$A$1" Then Fiu.Offset(0, 1) = Right(Fiu, 2) End Sub