bonsoir
je pensais avoir trouvé mais cela ne fonctionne pas tout a fait
la saisie se fait dans les cellule de format text sous la forme mm/yy
exemple 02/03
quand je saisie dans L144 pas de prob la verification est faite
des que je saisie dans M144, il effectue le controle mais me recontrole les
deux plages L et M
et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range)
' ' format des cellules
On Error Resume Next
If Union(Target, Range("L144:L148")).Address <> "" Then
'MsgBox CDate("01/" & Target.Value)
If CDate("01/" & Target.Value) > Now Then
MsgBox "Votre date de début est Futuriste"
End If
End If
If Union(Target, Range("M144:M148")).Address <> "" Then
If CDate("01/" & Target.Value) > Now Then
MsgBox "Votre date de fin est Futuriste"
End If
'MsgBox CDate("01/" & Target.Offset(0, -1))
If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1))
Then
MsgBox "Votre date de fin est antérieur à la date de début"
End If
End If
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
sabatier
bonjour gérard moi je ne saurais corriger que cela :
MsgBox "Votre date de fin est antérieurE à la date de début"
pour le reste, les caïds ne vont pas tarder à sortir de leurs mechtas jps
gerard a écrit:
bonsoir je pensais avoir trouvé mais cela ne fonctionne pas tout a fait la saisie se fait dans les cellule de format text sous la forme mm/yy exemple 02/03 quand je saisie dans L144 pas de prob la verification est faite des que je saisie dans M144, il effectue le controle mais me recontrole les deux plages L et M et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range) ' ' format des cellules On Error Resume Next If Union(Target, Range("L144:L148")).Address <> "" Then 'MsgBox CDate("01/" & Target.Value) If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Union(Target, Range("M144:M148")).Address <> "" Then If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de fin est Futuriste" End If 'MsgBox CDate("01/" & Target.Offset(0, -1)) If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1)) Then MsgBox "Votre date de fin est antérieur à la date de début" End If End If
End Sub
merci de votre aide ge
bonjour gérard
moi je ne saurais corriger que cela :
MsgBox "Votre date de fin est antérieurE à la date de début"
pour le reste, les caïds ne vont pas tarder à sortir de leurs mechtas
jps
gerard a écrit:
bonsoir
je pensais avoir trouvé mais cela ne fonctionne pas tout a fait
la saisie se fait dans les cellule de format text sous la forme mm/yy
exemple 02/03
quand je saisie dans L144 pas de prob la verification est faite
des que je saisie dans M144, il effectue le controle mais me recontrole les
deux plages L et M
et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range)
' ' format des cellules
On Error Resume Next
If Union(Target, Range("L144:L148")).Address <> "" Then
'MsgBox CDate("01/" & Target.Value)
If CDate("01/" & Target.Value) > Now Then
MsgBox "Votre date de début est Futuriste"
End If
End If
If Union(Target, Range("M144:M148")).Address <> "" Then
If CDate("01/" & Target.Value) > Now Then
MsgBox "Votre date de fin est Futuriste"
End If
'MsgBox CDate("01/" & Target.Offset(0, -1))
If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1))
Then
MsgBox "Votre date de fin est antérieur à la date de début"
End If
End If
bonjour gérard moi je ne saurais corriger que cela :
MsgBox "Votre date de fin est antérieurE à la date de début"
pour le reste, les caïds ne vont pas tarder à sortir de leurs mechtas jps
gerard a écrit:
bonsoir je pensais avoir trouvé mais cela ne fonctionne pas tout a fait la saisie se fait dans les cellule de format text sous la forme mm/yy exemple 02/03 quand je saisie dans L144 pas de prob la verification est faite des que je saisie dans M144, il effectue le controle mais me recontrole les deux plages L et M et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range) ' ' format des cellules On Error Resume Next If Union(Target, Range("L144:L148")).Address <> "" Then 'MsgBox CDate("01/" & Target.Value) If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Union(Target, Range("M144:M148")).Address <> "" Then If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de fin est Futuriste" End If 'MsgBox CDate("01/" & Target.Offset(0, -1)) If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1)) Then MsgBox "Votre date de fin est antérieur à la date de début" End If End If
End Sub
merci de votre aide ge
gerard
salut merci quand meme ge "sabatier" a écrit dans le message de news:
bonjour gérard moi je ne saurais corriger que cela :
MsgBox "Votre date de fin est antérieurE à la date de début"
pour le reste, les caïds ne vont pas tarder à sortir de leurs mechtas jps
gerard a écrit:
bonsoir je pensais avoir trouvé mais cela ne fonctionne pas tout a fait la saisie se fait dans les cellule de format text sous la forme mm/yy exemple 02/03 quand je saisie dans L144 pas de prob la verification est faite des que je saisie dans M144, il effectue le controle mais me recontrole les
deux plages L et M et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range) ' ' format des cellules On Error Resume Next If Union(Target, Range("L144:L148")).Address <> "" Then 'MsgBox CDate("01/" & Target.Value) If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Union(Target, Range("M144:M148")).Address <> "" Then If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de fin est Futuriste" End If 'MsgBox CDate("01/" & Target.Offset(0, -1)) If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1))
Then MsgBox "Votre date de fin est antérieur à la date de début" End If End If
End Sub
merci de votre aide ge
salut
merci quand meme
ge
"sabatier" <jpsabatdelaile@wanadoo.fr> a écrit dans le message de
news:40049222.8020904@wanadoo.fr...
bonjour gérard
moi je ne saurais corriger que cela :
MsgBox "Votre date de fin est antérieurE à la date de début"
pour le reste, les caïds ne vont pas tarder à sortir de leurs mechtas
jps
gerard a écrit:
bonsoir
je pensais avoir trouvé mais cela ne fonctionne pas tout a fait
la saisie se fait dans les cellule de format text sous la forme mm/yy
exemple 02/03
quand je saisie dans L144 pas de prob la verification est faite
des que je saisie dans M144, il effectue le controle mais me recontrole
les
deux plages L et M
et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range)
' ' format des cellules
On Error Resume Next
If Union(Target, Range("L144:L148")).Address <> "" Then
'MsgBox CDate("01/" & Target.Value)
If CDate("01/" & Target.Value) > Now Then
MsgBox "Votre date de début est Futuriste"
End If
End If
If Union(Target, Range("M144:M148")).Address <> "" Then
If CDate("01/" & Target.Value) > Now Then
MsgBox "Votre date de fin est Futuriste"
End If
'MsgBox CDate("01/" & Target.Offset(0, -1))
If CDate("01/" & Target.Value) < CDate("01/" &
Target.Offset(0, -1))
Then
MsgBox "Votre date de fin est antérieur à la date de début"
End If
End If
salut merci quand meme ge "sabatier" a écrit dans le message de news:
bonjour gérard moi je ne saurais corriger que cela :
MsgBox "Votre date de fin est antérieurE à la date de début"
pour le reste, les caïds ne vont pas tarder à sortir de leurs mechtas jps
gerard a écrit:
bonsoir je pensais avoir trouvé mais cela ne fonctionne pas tout a fait la saisie se fait dans les cellule de format text sous la forme mm/yy exemple 02/03 quand je saisie dans L144 pas de prob la verification est faite des que je saisie dans M144, il effectue le controle mais me recontrole les
deux plages L et M et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range) ' ' format des cellules On Error Resume Next If Union(Target, Range("L144:L148")).Address <> "" Then 'MsgBox CDate("01/" & Target.Value) If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Union(Target, Range("M144:M148")).Address <> "" Then If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de fin est Futuriste" End If 'MsgBox CDate("01/" & Target.Offset(0, -1)) If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1))
Then MsgBox "Votre date de fin est antérieur à la date de début" End If End If
End Sub
merci de votre aide ge
Jean-François Aubert
Salut Gérard,
If Union(Target, Range("L144:L148")).Address <> "" renvoie toujours une adresse: celle de l'union de Target et de L144:L148 !!!!!!!
Est-ce que ceci te convient ?
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 12 And Target.Row >= 144 And Target.Row <= 148 Then If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Target.Column = 13 And Target.Row >= 144 And Target.Row <= 148 Then If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de fin est Futuriste" End If If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1)) Then MsgBox "Votre date de fin est antérieur à la date de début" End If End If End Sub
-- Amicalement
Jean-François Aubert (pas caïd du tout)
"gerard" a écrit dans le message de news:bu23ap$mqi$
bonsoir je pensais avoir trouvé mais cela ne fonctionne pas tout a fait la saisie se fait dans les cellule de format text sous la forme mm/yy exemple 02/03 quand je saisie dans L144 pas de prob la verification est faite des que je saisie dans M144, il effectue le controle mais me recontrole les deux plages L et M et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range) ' ' format des cellules On Error Resume Next If Union(Target, Range("L144:L148")).Address <> "" Then 'MsgBox CDate("01/" & Target.Value) If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Union(Target, Range("M144:M148")).Address <> "" Then If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de fin est Futuriste" End If 'MsgBox CDate("01/" & Target.Offset(0, -1)) If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1)) Then MsgBox "Votre date de fin est antérieur à la date de début" End If End If
End Sub
merci de votre aide ge
Salut Gérard,
If Union(Target, Range("L144:L148")).Address <> ""
renvoie toujours une adresse: celle de l'union de Target et de L144:L148 !!!!!!!
Est-ce que ceci te convient ?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 12 And Target.Row >= 144 And Target.Row <= 148 Then
If CDate("01/" & Target.Value) > Now Then
MsgBox "Votre date de début est Futuriste"
End If
End If
If Target.Column = 13 And Target.Row >= 144 And Target.Row <= 148 Then
If CDate("01/" & Target.Value) > Now Then
MsgBox "Votre date de fin est Futuriste"
End If
If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1)) Then
MsgBox "Votre date de fin est antérieur à la date de début"
End If
End If
End Sub
--
Amicalement
Jean-François Aubert (pas caïd du tout)
"gerard" <gerard.v@wanadoo.fr> a écrit dans le message de
news:bu23ap$mqi$1@news-reader3.wanadoo.fr...
bonsoir
je pensais avoir trouvé mais cela ne fonctionne pas tout a fait
la saisie se fait dans les cellule de format text sous la forme mm/yy
exemple 02/03
quand je saisie dans L144 pas de prob la verification est faite
des que je saisie dans M144, il effectue le controle mais me recontrole les
deux plages L et M
et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range)
' ' format des cellules
On Error Resume Next
If Union(Target, Range("L144:L148")).Address <> "" Then
'MsgBox CDate("01/" & Target.Value)
If CDate("01/" & Target.Value) > Now Then
MsgBox "Votre date de début est Futuriste"
End If
End If
If Union(Target, Range("M144:M148")).Address <> "" Then
If CDate("01/" & Target.Value) > Now Then
MsgBox "Votre date de fin est Futuriste"
End If
'MsgBox CDate("01/" & Target.Offset(0, -1))
If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1))
Then
MsgBox "Votre date de fin est antérieur à la date de début"
End If
End If
If Union(Target, Range("L144:L148")).Address <> "" renvoie toujours une adresse: celle de l'union de Target et de L144:L148 !!!!!!!
Est-ce que ceci te convient ?
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 12 And Target.Row >= 144 And Target.Row <= 148 Then If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Target.Column = 13 And Target.Row >= 144 And Target.Row <= 148 Then If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de fin est Futuriste" End If If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1)) Then MsgBox "Votre date de fin est antérieur à la date de début" End If End If End Sub
-- Amicalement
Jean-François Aubert (pas caïd du tout)
"gerard" a écrit dans le message de news:bu23ap$mqi$
bonsoir je pensais avoir trouvé mais cela ne fonctionne pas tout a fait la saisie se fait dans les cellule de format text sous la forme mm/yy exemple 02/03 quand je saisie dans L144 pas de prob la verification est faite des que je saisie dans M144, il effectue le controle mais me recontrole les deux plages L et M et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range) ' ' format des cellules On Error Resume Next If Union(Target, Range("L144:L148")).Address <> "" Then 'MsgBox CDate("01/" & Target.Value) If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Union(Target, Range("M144:M148")).Address <> "" Then If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de fin est Futuriste" End If 'MsgBox CDate("01/" & Target.Offset(0, -1)) If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1)) Then MsgBox "Votre date de fin est antérieur à la date de début" End If End If
End Sub
merci de votre aide ge
ChrisV
Bonjour Gérard,
Tu peux aussi utiliser la méthode Intersect... (donc avec les plages de données dates début et de fin nommées respectivement "deB" et "fiN")
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("deB")) Is Nothing Then If CDate("01/" & Target) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Not Intersect(Target, Range("fiN")) Is Nothing Then If CDate("01/" & Target) > Now Then MsgBox "Votre date de début est Futuriste" End If If CDate("01/" & Target) < CDate("01/" & Target.Offset(0, -1)) Then MsgBox "Votre date de fin est antérieur à la date de début" End If End If End Sub
ChrisV
"gerard" a écrit dans le message de news: bu23ap$mqi$
bonsoir je pensais avoir trouvé mais cela ne fonctionne pas tout a fait la saisie se fait dans les cellule de format text sous la forme mm/yy exemple 02/03 quand je saisie dans L144 pas de prob la verification est faite des que je saisie dans M144, il effectue le controle mais me recontrole les
deux plages L et M et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range) ' ' format des cellules On Error Resume Next If Union(Target, Range("L144:L148")).Address <> "" Then 'MsgBox CDate("01/" & Target.Value) If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Union(Target, Range("M144:M148")).Address <> "" Then If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de fin est Futuriste" End If 'MsgBox CDate("01/" & Target.Offset(0, -1)) If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1))
Then MsgBox "Votre date de fin est antérieur à la date de début" End If End If
End Sub
merci de votre aide ge
Bonjour Gérard,
Tu peux aussi utiliser la méthode Intersect...
(donc avec les plages de données dates début et de fin nommées
respectivement "deB" et "fiN")
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("deB")) Is Nothing Then
If CDate("01/" & Target) > Now Then
MsgBox "Votre date de début est Futuriste"
End If
End If
If Not Intersect(Target, Range("fiN")) Is Nothing Then
If CDate("01/" & Target) > Now Then
MsgBox "Votre date de début est Futuriste"
End If
If CDate("01/" & Target) < CDate("01/" & Target.Offset(0, -1)) Then
MsgBox "Votre date de fin est antérieur à la date de début"
End If
End If
End Sub
ChrisV
"gerard" <gerard.v@wanadoo.fr> a écrit dans le message de news:
bu23ap$mqi$1@news-reader3.wanadoo.fr...
bonsoir
je pensais avoir trouvé mais cela ne fonctionne pas tout a fait
la saisie se fait dans les cellule de format text sous la forme mm/yy
exemple 02/03
quand je saisie dans L144 pas de prob la verification est faite
des que je saisie dans M144, il effectue le controle mais me recontrole
les
deux plages L et M
et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range)
' ' format des cellules
On Error Resume Next
If Union(Target, Range("L144:L148")).Address <> "" Then
'MsgBox CDate("01/" & Target.Value)
If CDate("01/" & Target.Value) > Now Then
MsgBox "Votre date de début est Futuriste"
End If
End If
If Union(Target, Range("M144:M148")).Address <> "" Then
If CDate("01/" & Target.Value) > Now Then
MsgBox "Votre date de fin est Futuriste"
End If
'MsgBox CDate("01/" & Target.Offset(0, -1))
If CDate("01/" & Target.Value) < CDate("01/" &
Target.Offset(0, -1))
Then
MsgBox "Votre date de fin est antérieur à la date de début"
End If
End If
Tu peux aussi utiliser la méthode Intersect... (donc avec les plages de données dates début et de fin nommées respectivement "deB" et "fiN")
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("deB")) Is Nothing Then If CDate("01/" & Target) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Not Intersect(Target, Range("fiN")) Is Nothing Then If CDate("01/" & Target) > Now Then MsgBox "Votre date de début est Futuriste" End If If CDate("01/" & Target) < CDate("01/" & Target.Offset(0, -1)) Then MsgBox "Votre date de fin est antérieur à la date de début" End If End If End Sub
ChrisV
"gerard" a écrit dans le message de news: bu23ap$mqi$
bonsoir je pensais avoir trouvé mais cela ne fonctionne pas tout a fait la saisie se fait dans les cellule de format text sous la forme mm/yy exemple 02/03 quand je saisie dans L144 pas de prob la verification est faite des que je saisie dans M144, il effectue le controle mais me recontrole les
deux plages L et M et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range) ' ' format des cellules On Error Resume Next If Union(Target, Range("L144:L148")).Address <> "" Then 'MsgBox CDate("01/" & Target.Value) If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Union(Target, Range("M144:M148")).Address <> "" Then If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de fin est Futuriste" End If 'MsgBox CDate("01/" & Target.Offset(0, -1)) If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1))
Then MsgBox "Votre date de fin est antérieur à la date de début" End If End If
End Sub
merci de votre aide ge
AV
je pensais avoir trouvé mais cela ne fonctionne pas tout a fait la saisie se fait dans les cellule de format text sous la forme mm/yy
Indépendamment du fait que je trouve que c'est pas une bonne idée, comment tester par rapport à la date du jour ? C'est une comparaison au mois près ? Bizarre....
AV
je pensais avoir trouvé mais cela ne fonctionne pas tout a fait
la saisie se fait dans les cellule de format text sous la forme mm/yy
Indépendamment du fait que je trouve que c'est pas une bonne idée, comment
tester par rapport à la date du jour ?
C'est une comparaison au mois près ?
Bizarre....
je pensais avoir trouvé mais cela ne fonctionne pas tout a fait la saisie se fait dans les cellule de format text sous la forme mm/yy
Indépendamment du fait que je trouve que c'est pas une bonne idée, comment tester par rapport à la date du jour ? C'est une comparaison au mois près ? Bizarre....
AV
gerard
salut prend l'exemple si c'est un stage déjà effectué il ne faut pas que la date de fin soit superieur a la date du jour ! a+ ge "AV" a écrit dans le message de news:
je pensais avoir trouvé mais cela ne fonctionne pas tout a fait la saisie se fait dans les cellule de format text sous la forme mm/yy
Indépendamment du fait que je trouve que c'est pas une bonne idée, comment tester par rapport à la date du jour ? C'est une comparaison au mois près ? Bizarre....
AV
salut
prend l'exemple si c'est un stage déjà effectué il ne faut pas que la date
de fin soit superieur a la date du jour !
a+
ge
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:uskfiCm2DHA.2500@TK2MSFTNGP10.phx.gbl...
je pensais avoir trouvé mais cela ne fonctionne pas tout a fait
la saisie se fait dans les cellule de format text sous la forme mm/yy
Indépendamment du fait que je trouve que c'est pas une bonne idée, comment
tester par rapport à la date du jour ?
C'est une comparaison au mois près ?
Bizarre....
salut prend l'exemple si c'est un stage déjà effectué il ne faut pas que la date de fin soit superieur a la date du jour ! a+ ge "AV" a écrit dans le message de news:
je pensais avoir trouvé mais cela ne fonctionne pas tout a fait la saisie se fait dans les cellule de format text sous la forme mm/yy
Indépendamment du fait que je trouve que c'est pas une bonne idée, comment tester par rapport à la date du jour ? C'est une comparaison au mois près ? Bizarre....
AV
gerard
salut merci ChrisV pour la methode intersect c'est celle qui me semble la plus simple et la plus compréhensible a mon niveau
On Error Resume Next If Not Intersect(Target, Range("deB")) Is Nothing Then If Target.Value = "" Then Exit Sub If CDate("01/" & Target) > Now Then MsgBox "Votre date de début est Futuriste" Target.Select End If End If
j'ai juste rajouté deux lignes 1. pour revenir sur la cellule en faute Target.Select 2. si l'on vide la cellule avant de la resaisir il y a erreur type imcompatible, avec on error je passe a la ligne suivante et pour eviter un message qui n'a pas raison d'etre j'ai du rajouter au debut If Target.Value = "" Then Exit Sub voila
merci à ChrisV et à Jean-François "ChrisV" a écrit dans le message de news:
Bonjour Gérard,
Tu peux aussi utiliser la méthode Intersect... (donc avec les plages de données dates début et de fin nommées respectivement "deB" et "fiN")
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("deB")) Is Nothing Then If CDate("01/" & Target) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Not Intersect(Target, Range("fiN")) Is Nothing Then If CDate("01/" & Target) > Now Then MsgBox "Votre date de début est Futuriste" End If If CDate("01/" & Target) < CDate("01/" & Target.Offset(0, -1)) Then
MsgBox "Votre date de fin est antérieur à la date de début" End If End If End Sub
ChrisV
"gerard" a écrit dans le message de news: bu23ap$mqi$
bonsoir je pensais avoir trouvé mais cela ne fonctionne pas tout a fait la saisie se fait dans les cellule de format text sous la forme mm/yy exemple 02/03 quand je saisie dans L144 pas de prob la verification est faite des que je saisie dans M144, il effectue le controle mais me recontrole les
deux plages L et M et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range) ' ' format des cellules On Error Resume Next If Union(Target, Range("L144:L148")).Address <> "" Then 'MsgBox CDate("01/" & Target.Value) If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Union(Target, Range("M144:M148")).Address <> "" Then If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de fin est Futuriste" End If 'MsgBox CDate("01/" & Target.Offset(0, -1)) If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1))
Then MsgBox "Votre date de fin est antérieur à la date de début" End If End If
End Sub
merci de votre aide ge
salut
merci ChrisV pour la methode intersect
c'est celle qui me semble la plus simple et la plus compréhensible a mon
niveau
On Error Resume Next
If Not Intersect(Target, Range("deB")) Is Nothing Then
If Target.Value = "" Then Exit Sub
If CDate("01/" & Target) > Now Then
MsgBox "Votre date de début est Futuriste"
Target.Select
End If
End If
j'ai juste rajouté deux lignes
1. pour revenir sur la cellule en faute Target.Select
2. si l'on vide la cellule avant de la resaisir il y a erreur type
imcompatible, avec on error je passe a la ligne suivante
et pour eviter un message qui n'a pas raison d'etre j'ai du rajouter au
debut If Target.Value = "" Then Exit Sub
voila
merci à ChrisV et à Jean-François
"ChrisV" <chrisve@wanadoo.fr> a écrit dans le message de
news:OSHlhXk2DHA.2856@TK2MSFTNGP09.phx.gbl...
Bonjour Gérard,
Tu peux aussi utiliser la méthode Intersect...
(donc avec les plages de données dates début et de fin nommées
respectivement "deB" et "fiN")
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("deB")) Is Nothing Then
If CDate("01/" & Target) > Now Then
MsgBox "Votre date de début est Futuriste"
End If
End If
If Not Intersect(Target, Range("fiN")) Is Nothing Then
If CDate("01/" & Target) > Now Then
MsgBox "Votre date de début est Futuriste"
End If
If CDate("01/" & Target) < CDate("01/" & Target.Offset(0, -1))
Then
MsgBox "Votre date de fin est antérieur à la date de début"
End If
End If
End Sub
ChrisV
"gerard" <gerard.v@wanadoo.fr> a écrit dans le message de news:
bu23ap$mqi$1@news-reader3.wanadoo.fr...
bonsoir
je pensais avoir trouvé mais cela ne fonctionne pas tout a fait
la saisie se fait dans les cellule de format text sous la forme mm/yy
exemple 02/03
quand je saisie dans L144 pas de prob la verification est faite
des que je saisie dans M144, il effectue le controle mais me recontrole
les
deux plages L et M
et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range)
' ' format des cellules
On Error Resume Next
If Union(Target, Range("L144:L148")).Address <> "" Then
'MsgBox CDate("01/" & Target.Value)
If CDate("01/" & Target.Value) > Now Then
MsgBox "Votre date de début est Futuriste"
End If
End If
If Union(Target, Range("M144:M148")).Address <> "" Then
If CDate("01/" & Target.Value) > Now Then
MsgBox "Votre date de fin est Futuriste"
End If
'MsgBox CDate("01/" & Target.Offset(0, -1))
If CDate("01/" & Target.Value) < CDate("01/" &
Target.Offset(0, -1))
Then
MsgBox "Votre date de fin est antérieur à la date de début"
End If
End If
salut merci ChrisV pour la methode intersect c'est celle qui me semble la plus simple et la plus compréhensible a mon niveau
On Error Resume Next If Not Intersect(Target, Range("deB")) Is Nothing Then If Target.Value = "" Then Exit Sub If CDate("01/" & Target) > Now Then MsgBox "Votre date de début est Futuriste" Target.Select End If End If
j'ai juste rajouté deux lignes 1. pour revenir sur la cellule en faute Target.Select 2. si l'on vide la cellule avant de la resaisir il y a erreur type imcompatible, avec on error je passe a la ligne suivante et pour eviter un message qui n'a pas raison d'etre j'ai du rajouter au debut If Target.Value = "" Then Exit Sub voila
merci à ChrisV et à Jean-François "ChrisV" a écrit dans le message de news:
Bonjour Gérard,
Tu peux aussi utiliser la méthode Intersect... (donc avec les plages de données dates début et de fin nommées respectivement "deB" et "fiN")
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("deB")) Is Nothing Then If CDate("01/" & Target) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Not Intersect(Target, Range("fiN")) Is Nothing Then If CDate("01/" & Target) > Now Then MsgBox "Votre date de début est Futuriste" End If If CDate("01/" & Target) < CDate("01/" & Target.Offset(0, -1)) Then
MsgBox "Votre date de fin est antérieur à la date de début" End If End If End Sub
ChrisV
"gerard" a écrit dans le message de news: bu23ap$mqi$
bonsoir je pensais avoir trouvé mais cela ne fonctionne pas tout a fait la saisie se fait dans les cellule de format text sous la forme mm/yy exemple 02/03 quand je saisie dans L144 pas de prob la verification est faite des que je saisie dans M144, il effectue le controle mais me recontrole les
deux plages L et M et me repete deux fois la meme chose voici mon code
Private Sub Worksheet_Change(ByVal Target As Range) ' ' format des cellules On Error Resume Next If Union(Target, Range("L144:L148")).Address <> "" Then 'MsgBox CDate("01/" & Target.Value) If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de début est Futuriste" End If End If If Union(Target, Range("M144:M148")).Address <> "" Then If CDate("01/" & Target.Value) > Now Then MsgBox "Votre date de fin est Futuriste" End If 'MsgBox CDate("01/" & Target.Offset(0, -1)) If CDate("01/" & Target.Value) < CDate("01/" & Target.Offset(0, -1))
Then MsgBox "Votre date de fin est antérieur à la date de début" End If End If
End Sub
merci de votre aide ge
AV
prend l'exemple si c'est un stage déjà effectué il ne faut pas que la date de fin soit superieur a la date du jour !
C'est pas une réponse à mon interrogation mais puisque ça te va comme ça...
AV
prend l'exemple si c'est un stage déjà effectué il ne faut pas que la date
de fin soit superieur a la date du jour !
C'est pas une réponse à mon interrogation mais puisque ça te va comme ça...
prend l'exemple si c'est un stage déjà effectué il ne faut pas que la date de fin soit superieur a la date du jour !
C'est pas une réponse à mon interrogation mais puisque ça te va comme ça...
AV
ChrisV
j'ai juste rajouté deux lignes
Très bien... Parfait ! ;-)
ChrisV
"gerard" a écrit dans le message de news: bu31k3$de3$
salut merci ChrisV pour la methode intersect c'est celle qui me semble la plus simple et la plus compréhensible a mon niveau
On Error Resume Next If Not Intersect(Target, Range("deB")) Is Nothing Then If Target.Value = "" Then Exit Sub If CDate("01/" & Target) > Now Then MsgBox "Votre date de début est Futuriste" Target.Select End If End If
j'ai juste rajouté deux lignes 1. pour revenir sur la cellule en faute Target.Select 2. si l'on vide la cellule avant de la resaisir il y a erreur type imcompatible, avec on error je passe a la ligne suivante et pour eviter un message qui n'a pas raison d'etre j'ai du rajouter au debut If Target.Value = "" Then Exit Sub voila
merci à ChrisV et à Jean-François
j'ai juste rajouté deux lignes
Très bien... Parfait ! ;-)
ChrisV
"gerard" <gerard.v@wanadoo.fr> a écrit dans le message de news:
bu31k3$de3$1@news-reader3.wanadoo.fr...
salut
merci ChrisV pour la methode intersect
c'est celle qui me semble la plus simple et la plus compréhensible a mon
niveau
On Error Resume Next
If Not Intersect(Target, Range("deB")) Is Nothing Then
If Target.Value = "" Then Exit Sub
If CDate("01/" & Target) > Now Then
MsgBox "Votre date de début est Futuriste"
Target.Select
End If
End If
j'ai juste rajouté deux lignes
1. pour revenir sur la cellule en faute Target.Select
2. si l'on vide la cellule avant de la resaisir il y a erreur type
imcompatible, avec on error je passe a la ligne suivante
et pour eviter un message qui n'a pas raison d'etre j'ai du rajouter au
debut If Target.Value = "" Then Exit Sub
voila
"gerard" a écrit dans le message de news: bu31k3$de3$
salut merci ChrisV pour la methode intersect c'est celle qui me semble la plus simple et la plus compréhensible a mon niveau
On Error Resume Next If Not Intersect(Target, Range("deB")) Is Nothing Then If Target.Value = "" Then Exit Sub If CDate("01/" & Target) > Now Then MsgBox "Votre date de début est Futuriste" Target.Select End If End If
j'ai juste rajouté deux lignes 1. pour revenir sur la cellule en faute Target.Select 2. si l'on vide la cellule avant de la resaisir il y a erreur type imcompatible, avec on error je passe a la ligne suivante et pour eviter un message qui n'a pas raison d'etre j'ai du rajouter au debut If Target.Value = "" Then Exit Sub voila