OVH Cloud OVH Cloud

VBa Date Validation

2 réponses
Avatar
LeSteph
Bonjour,

Comment à l'identique d'un évennement On change applicable à
Worksheet puis je le limiter à une colonne dans ce but:

Sur chaque ligne "enregistrement" d'une feuille ("bénéficiaires")
protégée
je souhaite lorsque l'utilisateur entrera ou modifiera
pour application au bénéficiaire
par liste validation Prix A , B, C, D
dans la colonne 5
qu'apparaisse dans la colonne 6 la date du jour qui doit rester fixe
je ne veux donc pas utiliser de formule date dans la feuille mais bien
détecter
l'évènement onchange dans la colonne prix pour déprotèger fixer la date dans
la colonne date et reprotèger.
Merci

2 réponses

Avatar
Pascal Engelmajer
Salut,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim inter
Set inter = Intersect(Target, Me.Columns(5))
If Not inter Is Nothing Then
If inter.Count = 1 Then
ActiveSheet.Unprotect
Target.Offset(0, 1) = Format(Date, "dd/mm/yyyy")
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
End If
End If
End Sub

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"LeSteph" a écrit dans le message de news:
40876aaa$0$26451$
Bonjour,

Comment à l'identique d'un évennement On change applicable à
Worksheet puis je le limiter à une colonne dans ce but:

Sur chaque ligne "enregistrement" d'une feuille ("bénéficiaires")
protégée
je souhaite lorsque l'utilisateur entrera ou modifiera
pour application au bénéficiaire
par liste validation Prix A , B, C, D
dans la colonne 5
qu'apparaisse dans la colonne 6 la date du jour qui doit rester fixe
je ne veux donc pas utiliser de formule date dans la feuille mais bien
détecter
l'évènement onchange dans la colonne prix pour déprotèger fixer la date
dans

la colonne date et reprotèger.
Merci




Avatar
LeSteph
Merci à toi Pascal,

je vais employer cela
mais là on utilise à nouveau, enfin au départ,
Private Sub Worksheet _Change,
donc j'en reviens à ajouter ces instructions au Private Sub déjà existant
pour contrôler d'autres éléments de la feuille.
Je me demandais et en fait je ne sais pas si c'est possible ni même si cela
allège de définir l'objet Range ou Column(5) en tant que propriété du projet
et exercer par exemple
un Private Sub Mycolumn_Change pour ne rien solliciter
en cas de changement sur le reste de la feuille.
Mais c'est juste de la curiosité.
Encore Merci.

Steph


"Pascal Engelmajer" a écrit dans le
message de news:%
Salut,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim inter
Set inter = Intersect(Target, Me.Columns(5))
If Not inter Is Nothing Then
If inter.Count = 1 Then
ActiveSheet.Unprotect
Target.Offset(0, 1) = Format(Date, "dd/mm/yyyy")
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
End If
End If
End Sub

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"LeSteph" a écrit dans le message de news:
40876aaa$0$26451$
Bonjour,

Comment à l'identique d'un évennement On change applicable à
Worksheet puis je le limiter à une colonne dans ce but:

Sur chaque ligne "enregistrement" d'une feuille ("bénéficiaires")
protégée
je souhaite lorsque l'utilisateur entrera ou modifiera
pour application au bénéficiaire
par liste validation Prix A , B, C, D
dans la colonne 5
qu'apparaisse dans la colonne 6 la date du jour qui doit rester fixe
je ne veux donc pas utiliser de formule date dans la feuille mais bien
détecter
l'évènement onchange dans la colonne prix pour déprotèger fixer la date
dans

la colonne date et reprotèger.
Merci