OVH Cloud OVH Cloud

Obliger une saisie worksheet

4 réponses
Avatar
Florian
Bonjour
J'ai une col Ref_organisation et une autre Ref_fermeture
je souhaite que si un utilisateur choisisse dans une liste déroulante "5
jours" il ne puisse rien saisir dans la cellule à droite.
En revanche, s'il saisit "4,5 jours" il soit obligé de saisir quelque chose
dans la cellule à droite.
Merci beaucoup
bonne journée
Flo riant

4 réponses

Avatar
anonymousA
bonjour,

tu remplaces $C$1 par l'adresse de la cellule qui contient
Données/Validation/Liste et "A1" par l'adresse de la cellule de droite
comme tu dis et ca devrait le faire.
Attention ce qui suit ne gère pas de tests sur l'obligation ou pas de
rentre quelque chose dans la cellule de droite lors d'un changement de
feuille , de classeur ou de la fermeture du classeur. Pour celà, il
faudra utliser les evenements habituels worksheet_change,
workbook_deactivate, et/ou workbook_beforeclose
Le test pour l'obligation de saisir est fait sur la vacuité de la
cellule mais tu n'es pas obligé de respecter cette règle. Tu peux
choisir un autre type de test.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$C$1" And Target.Value = "4.5 jours" Then
Range("A1").Activate

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("C1") = "5 jours" And Not Intersect(Target, Range("A1")) Is
Nothing Then
MsgBox "pas possible de saisir"
Range("A2").Activate
ElseIf Range("C1") = "4.5 jours" Then
If IsEmpty(Range("A1")) Then
MsgBox "obligé de saisir en A1"
Application.EnableEvents = False
Range("A1").Activate
Application.EnableEvents = True
End If
End If

End Sub

A+

Bonjour
J'ai une col Ref_organisation et une autre Ref_fermeture
je souhaite que si un utilisateur choisisse dans une liste déroulante "5
jours" il ne puisse rien saisir dans la cellule à droite.
En revanche, s'il saisit "4,5 jours" il soit obligé de saisir quelque chose
dans la cellule à droite.
Merci beaucoup
bonne journée
Flo riant




Avatar
Florian
Bonjour AnonymousA
Je te remercie beaucoup pour ta procédure ainsi que pour toutes tes
explications

Je souhaite l'adapter sur des colonnes complètes
J'ai une col Ref_organisation dans laquelle je saisi les jours "4,5 jours"
ou "5 jours" et une autre Ref_fermeture dans laquelle l'utilisateur doit
saisir, si il y a "4,5 jours" dans la cellule contiguë
Merci encore
Flo riant

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("C1") = "5 jours" And Not Intersect(Target, Range("A1")) Is Nothing
Then
MsgBox "pas possible de saisir"
Range("A2").Activate
ElseIf Range("C1") = "4,5 jours" Then
If IsEmpty(Range("A1")) Then
MsgBox "obligé de saisir en A1"
Application.EnableEvents = False
Range("A1").Activate
Application.EnableEvents = True
End If
End If

End Sub


"anonymousA" a écrit dans le message de news:
42b41c80$0$25049$
bonjour,

tu remplaces $C$1 par l'adresse de la cellule qui contient
Données/Validation/Liste et "A1" par l'adresse de la cellule de droite
comme tu dis et ca devrait le faire.
Attention ce qui suit ne gère pas de tests sur l'obligation ou pas de
rentre quelque chose dans la cellule de droite lors d'un changement de
feuille , de classeur ou de la fermeture du classeur. Pour celà, il faudra
utliser les evenements habituels worksheet_change, workbook_deactivate,
et/ou workbook_beforeclose
Le test pour l'obligation de saisir est fait sur la vacuité de la cellule
mais tu n'es pas obligé de respecter cette règle. Tu peux choisir un autre
type de test.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$C$1" And Target.Value = "4.5 jours" Then
Range("A1").Activate

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("C1") = "5 jours" And Not Intersect(Target, Range("A1")) Is
Nothing Then
MsgBox "pas possible de saisir"
Range("A2").Activate
ElseIf Range("C1") = "4.5 jours" Then
If IsEmpty(Range("A1")) Then
MsgBox "obligé de saisir en A1"
Application.EnableEvents = False
Range("A1").Activate
Application.EnableEvents = True
End If
End If

End Sub

A+

Bonjour
J'ai une col Ref_organisation et une autre Ref_fermeture
je souhaite que si un utilisateur choisisse dans une liste déroulante "5
jours" il ne puisse rien saisir dans la cellule à droite.
En revanche, s'il saisit "4,5 jours" il soit obligé de saisir quelque
chose dans la cellule à droite.
Merci beaucoup
bonne journée
Flo riant




Avatar
anonymousA
re,

sur une colonne complète, l'affaire est un peu plus complexe et je n'ai
malheureusement pas le temps de m'y pencher maintenant. Espère qu'avec
les 1ers éléments que je t'ai communiqués , tu pourras adapter.


A+

Bonjour AnonymousA
Je te remercie beaucoup pour ta procédure ainsi que pour toutes tes
explications

Je souhaite l'adapter sur des colonnes complètes
J'ai une col Ref_organisation dans laquelle je saisi les jours "4,5 jours"
ou "5 jours" et une autre Ref_fermeture dans laquelle l'utilisateur doit
saisir, si il y a "4,5 jours" dans la cellule contiguë
Merci encore
Flo riant

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("C1") = "5 jours" And Not Intersect(Target, Range("A1")) Is Nothing
Then
MsgBox "pas possible de saisir"
Range("A2").Activate
ElseIf Range("C1") = "4,5 jours" Then
If IsEmpty(Range("A1")) Then
MsgBox "obligé de saisir en A1"
Application.EnableEvents = False
Range("A1").Activate
Application.EnableEvents = True
End If
End If

End Sub


"anonymousA" a écrit dans le message de news:
42b41c80$0$25049$

bonjour,

tu remplaces $C$1 par l'adresse de la cellule qui contient
Données/Validation/Liste et "A1" par l'adresse de la cellule de droite
comme tu dis et ca devrait le faire.
Attention ce qui suit ne gère pas de tests sur l'obligation ou pas de
rentre quelque chose dans la cellule de droite lors d'un changement de
feuille , de classeur ou de la fermeture du classeur. Pour celà, il faudra
utliser les evenements habituels worksheet_change, workbook_deactivate,
et/ou workbook_beforeclose
Le test pour l'obligation de saisir est fait sur la vacuité de la cellule
mais tu n'es pas obligé de respecter cette règle. Tu peux choisir un autre
type de test.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$C$1" And Target.Value = "4.5 jours" Then
Range("A1").Activate

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("C1") = "5 jours" And Not Intersect(Target, Range("A1")) Is
Nothing Then
MsgBox "pas possible de saisir"
Range("A2").Activate
ElseIf Range("C1") = "4.5 jours" Then
If IsEmpty(Range("A1")) Then
MsgBox "obligé de saisir en A1"
Application.EnableEvents = False
Range("A1").Activate
Application.EnableEvents = True
End If
End If

End Sub

A+


Bonjour
J'ai une col Ref_organisation et une autre Ref_fermeture
je souhaite que si un utilisateur choisisse dans une liste déroulante "5
jours" il ne puisse rien saisir dans la cellule à droite.
En revanche, s'il saisit "4,5 jours" il soit obligé de saisir quelque
chose dans la cellule à droite.
Merci beaucoup
bonne journée
Flo riant









Avatar
Florian
Je te remercie beaucoup pour ce que m'a fourni
et je vais réellement tenter d'adapter ;-)
Bonne journée
Flo riant




"anonymousA" a écrit dans le message de news:
42b42408$0$1215$
re,

sur une colonne complète, l'affaire est un peu plus complexe et je n'ai
malheureusement pas le temps de m'y pencher maintenant. Espère qu'avec les
1ers éléments que je t'ai communiqués , tu pourras adapter.


A+

Bonjour AnonymousA
Je te remercie beaucoup pour ta procédure ainsi que pour toutes tes
explications

Je souhaite l'adapter sur des colonnes complètes
J'ai une col Ref_organisation dans laquelle je saisi les jours "4,5
jours" ou "5 jours" et une autre Ref_fermeture dans laquelle
l'utilisateur doit saisir, si il y a "4,5 jours" dans la cellule contiguë
Merci encore
Flo riant

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("C1") = "5 jours" And Not Intersect(Target, Range("A1")) Is
Nothing Then
MsgBox "pas possible de saisir"
Range("A2").Activate
ElseIf Range("C1") = "4,5 jours" Then
If IsEmpty(Range("A1")) Then
MsgBox "obligé de saisir en A1"
Application.EnableEvents = False
Range("A1").Activate
Application.EnableEvents = True
End If
End If

End Sub


"anonymousA" a écrit dans le message de news:
42b41c80$0$25049$

bonjour,

tu remplaces $C$1 par l'adresse de la cellule qui contient
Données/Validation/Liste et "A1" par l'adresse de la cellule de droite
comme tu dis et ca devrait le faire.
Attention ce qui suit ne gère pas de tests sur l'obligation ou pas de
rentre quelque chose dans la cellule de droite lors d'un changement de
feuille , de classeur ou de la fermeture du classeur. Pour celà, il
faudra utliser les evenements habituels worksheet_change,
workbook_deactivate, et/ou workbook_beforeclose
Le test pour l'obligation de saisir est fait sur la vacuité de la cellule
mais tu n'es pas obligé de respecter cette règle. Tu peux choisir un
autre type de test.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$C$1" And Target.Value = "4.5 jours" Then
Range("A1").Activate

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("C1") = "5 jours" And Not Intersect(Target, Range("A1")) Is
Nothing Then
MsgBox "pas possible de saisir"
Range("A2").Activate
ElseIf Range("C1") = "4.5 jours" Then
If IsEmpty(Range("A1")) Then
MsgBox "obligé de saisir en A1"
Application.EnableEvents = False
Range("A1").Activate
Application.EnableEvents = True
End If
End If

End Sub

A+


Bonjour
J'ai une col Ref_organisation et une autre Ref_fermeture
je souhaite que si un utilisateur choisisse dans une liste déroulante "5
jours" il ne puisse rien saisir dans la cellule à droite.
En revanche, s'il saisit "4,5 jours" il soit obligé de saisir quelque
chose dans la cellule à droite.
Merci beaucoup
bonne journée
Flo riant