Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Obliger l'utilisateur à renseigner la cellule

9 réponses
Avatar
Philippe
Bonjour

En A1 un contrôle par Données/Validation/Nombre entier/comprise entre
Minimum 10
Maximum 50

Comment forcer l'utilisateur à renseigner la cellule en A1 ? car en appuyant
directement sur la touche Entrée ou en utilisant la souris le curseur se
deplace évitant le contrôle
Merci de votre aide ?

Phil

9 réponses

Avatar
Olivier
Bonjour,

en faisant un test sur cette cellule pour continuer la macro s'il s'agit
d'une macro

sinon la tester dans les cellules dépendantes s'il s'agit de fonctions.

Olivier


"Philippe" a écrit dans le message de news:
45b33112$0$8265$
Bonjour

En A1 un contrôle par Données/Validation/Nombre entier/comprise entre
Minimum 10
Maximum 50

Comment forcer l'utilisateur à renseigner la cellule en A1 ? car en
appuyant

directement sur la touche Entrée ou en utilisant la souris le curseur se
deplace évitant le contrôle
Merci de votre aide ?

Phil




Avatar
Jacky
Bonjour,

Ceci peut-être, en plus de donnée/validation
'--------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then Exit Sub
If [A1] = "" Then
MsgBox "La cellule A1 doit être renseignée"
[A1].Select
End If
End Sub
'--------
--
Salutations
JJ



"Philippe" a écrit dans le message de news:
45b33112$0$8265$
Bonjour

En A1 un contrôle par Données/Validation/Nombre entier/comprise entre
Minimum 10
Maximum 50

Comment forcer l'utilisateur à renseigner la cellule en A1 ? car en
appuyant directement sur la touche Entrée ou en utilisant la souris le
curseur se deplace évitant le contrôle
Merci de votre aide ?

Phil



Avatar
Philippe
Merci Jacky de ton aide précieuse
Bon dimanche à tous
salutations
lephil
"Jacky" a écrit dans le message de news:

Bonjour,

Ceci peut-être, en plus de donnée/validation
'--------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then Exit Sub
If [A1] = "" Then
MsgBox "La cellule A1 doit être renseignée"
[A1].Select
End If
End Sub
'--------
--
Salutations
JJ



"Philippe" a écrit dans le message de news:
45b33112$0$8265$
Bonjour

En A1 un contrôle par Données/Validation/Nombre entier/comprise entre
Minimum 10
Maximum 50

Comment forcer l'utilisateur à renseigner la cellule en A1 ? car en
appuyant directement sur la touche Entrée ou en utilisant la souris le
curseur se deplace évitant le contrôle
Merci de votre aide ?

Phil







Avatar
Jacky
Bonsoir,

Je suis pas sur d'avoir compris.
Ceci oblige de renseigner la cellule A2, soit par la cellule A1 soit par
une liste de validation.
Regarde ci cela convient:
http://cjoint.com/?bvw1CRTOey
--
Salutations
JJ



"Nicoh" a écrit dans le message de news:

Bonjour Jacky,

Je me permets de m'immiscer dans les questions/réponses car j'ai une
problèmatique proche de la macro que tu utilises, mais je n'arrive pas à
l'adapter.

Je souhaite aussi obliger la saisie d'une réponse dans une cellule, mais
mon
problème est un peu plus complexe.
Si GAUCHE (A1;1)="L", ou GAUCHE(A1;2)="1J" ... alors A2 = dito ou = non,
sinon, si la cellule A2 n'est pas renseignée, il doit y avoir un message
"vous devez renseigner A2".
Idéalement, il faudrait que le curseur passe systématiquement de A1 à A2
(en
A2 il y a une liste de choix qui est prévue) ou lieu d'un message, mais un
message me satisferait amplement.

Merci d'avance pour ton aide.


Bonjour,

Ceci peut-être, en plus de donnée/validation
'--------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then Exit Sub
If [A1] = "" Then
MsgBox "La cellule A1 doit être renseignée"
[A1].Select
End If
End Sub
'--------
--
Salutations
JJ



"Philippe" a écrit dans le message de news:
45b33112$0$8265$
Bonjour

En A1 un contrôle par Données/Validation/Nombre entier/comprise
entre
Minimum 10
Maximum 50

Comment forcer l'utilisateur à renseigner la cellule en A1 ? car en
appuyant directement sur la touche Entrée ou en utilisant la souris le
curseur se deplace évitant le contrôle
Merci de votre aide ?

Phil










Avatar
Nicoh
Bonsoir Jacky,

C'est pratiquement ça. Il manque l'obligation de remplir A2 par rapport au
contenu de A1.

Pour faire simple, quand A1="L" ou "IL", le curseur doit aller
automatiquement en A2 on l'on choisit non ou dito. Si A1 est une autre
valeur, on peut aller librement en B1 ou en A2. Autrement dit, quand A1="L",
on ne peut pas aller en B1 avant d'avoir renseigné A2.

Merci pour ton aide.

nicoh


Bonsoir,

Je suis pas sur d'avoir compris.
Ceci oblige de renseigner la cellule A2, soit par la cellule A1 soit par
une liste de validation.
Regarde ci cela convient:
http://cjoint.com/?bvw1CRTOey
--
Salutations
JJ



"Nicoh" a écrit dans le message de news:

Bonjour Jacky,

Je me permets de m'immiscer dans les questions/réponses car j'ai une
problèmatique proche de la macro que tu utilises, mais je n'arrive pas à
l'adapter.

Je souhaite aussi obliger la saisie d'une réponse dans une cellule, mais
mon
problème est un peu plus complexe.
Si GAUCHE (A1;1)="L", ou GAUCHE(A1;2)="1J" ... alors A2 = dito ou = non,
sinon, si la cellule A2 n'est pas renseignée, il doit y avoir un message
"vous devez renseigner A2".
Idéalement, il faudrait que le curseur passe systématiquement de A1 à A2
(en
A2 il y a une liste de choix qui est prévue) ou lieu d'un message, mais un
message me satisferait amplement.

Merci d'avance pour ton aide.


Bonjour,

Ceci peut-être, en plus de donnée/validation
'--------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then Exit Sub
If [A1] = "" Then
MsgBox "La cellule A1 doit être renseignée"
[A1].Select
End If
End Sub
'--------
--
Salutations
JJ



"Philippe" a écrit dans le message de news:
45b33112$0$8265$
Bonjour

En A1 un contrôle par Données/Validation/Nombre entier/comprise
entre
Minimum 10
Maximum 50

Comment forcer l'utilisateur à renseigner la cellule en A1 ? car en
appuyant directement sur la touche Entrée ou en utilisant la souris le
curseur se deplace évitant le contrôle
Merci de votre aide ?

Phil















Avatar
JB
Bonjour,

http://cjoint.com/?bwjcKginqN

-La cellule B1 est déverrouillée si A1 contient L ou 1J
(Au départ ,la cellule A1 ne doit pas être verrouillée
(format/cellule/protection))

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.Count = 1 Then
If Left(Target, 1) = "L" Or Left(Target, 2) = "1J" Then
ActiveSheet.Unprotect Password:=""
[B1].Locked = False
[B1].Interior.ColorIndex = 36
ActiveSheet.Protect Password:=""
Else
ActiveSheet.Unprotect Password:=""
[B1].Locked = True
[B1].Interior.ColorIndex = 3
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Protect Password:=""
End If
End If
End Sub

JB


Bonjour Jacky,

Je me permets de m'immiscer dans les questions/réponses car j'ai une
problèmatique proche de la macro que tu utilises, mais je n'arrive pas à
l'adapter.

Je souhaite aussi obliger la saisie d'une réponse dans une cellule, mai s mon
problème est un peu plus complexe.
Si GAUCHE (A1;1)="L", ou GAUCHE(A1;2)="1J" ... alors A2 = dito ou = non,
sinon, si la cellule A2 n'est pas renseignée, il doit y avoir un message
"vous devez renseigner A2".
Idéalement, il faudrait que le curseur passe systématiquement de A1 à A2 (en
A2 il y a une liste de choix qui est prévue) ou lieu d'un message, mais un
message me satisferait amplement.

Merci d'avance pour ton aide.


Bonjour,

Ceci peut-être, en plus de donnée/validation
'--------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then Exit Sub
If [A1] = "" Then
MsgBox "La cellule A1 doit être renseignée"
[A1].Select
End If
End Sub
'--------
--
Salutations
JJ



"Philippe" a écrit dans le message de news:
45b33112$0$8265$
Bonjour

En A1 un contrôle par Données/Validation/Nombre entier/compris e entre
Minimum 10
Maximum 50

Comment forcer l'utilisateur à renseigner la cellule en A1 ? car en
appuyant directement sur la touche Entrée ou en utilisant la souri s le
curseur se deplace évitant le contrôle
Merci de votre aide ?

Phil










Avatar
Nicoh
Bonjour JB,

Je te remercie de ta réponse.
Sur le principe c'est ce que je recherche.
Néanmoins, quand je saisi autre chose que L ou 1J, toute la feuille est
bloquée. Or, je vais très souvent saisir d'autres valeurs, auquel cas
l'obligation d'aller en B1 n'est pas obligatoire. Et surtou, il ne faut
surtout pas que toute la feuille soit bloquée car ma feuille contient des
centaines de formules compliquées (enfin pour moi).

Je vais illustrer par un exemple pour m e faire mieux comprendre :
En A1, je saisis L ou 1J, alors je dois obligatoirement aller en A2 (et non
B1 c'est une erreur de ma part dès le début) ; par contre, je peux ensuite
aller dans n'importe quelle autre cellule.
Si en A1 je tape par exemple SD, alors je peux aller partout ailleurs.
Petite précision, l'opération se répète dix foix de suite de A1:A2 à A19:A20

Merci pour ton aide.

nicoh


Bonjour,

http://cjoint.com/?bwjcKginqN

-La cellule B1 est déverrouillée si A1 contient L ou 1J
(Au départ ,la cellule A1 ne doit pas être verrouillée
(format/cellule/protection))

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.Count = 1 Then
If Left(Target, 1) = "L" Or Left(Target, 2) = "1J" Then
ActiveSheet.Unprotect Password:=""
[B1].Locked = False
[B1].Interior.ColorIndex = 36
ActiveSheet.Protect Password:=""
Else
ActiveSheet.Unprotect Password:=""
[B1].Locked = True
[B1].Interior.ColorIndex = 3
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Protect Password:=""
End If
End If
End Sub

JB


Bonjour Jacky,

Je me permets de m'immiscer dans les questions/réponses car j'ai une
problèmatique proche de la macro que tu utilises, mais je n'arrive pas à
l'adapter.

Je souhaite aussi obliger la saisie d'une réponse dans une cellule, mais mon
problème est un peu plus complexe.
Si GAUCHE (A1;1)="L", ou GAUCHE(A1;2)="1J" ... alors A2 = dito ou = non,
sinon, si la cellule A2 n'est pas renseignée, il doit y avoir un message
"vous devez renseigner A2".
Idéalement, il faudrait que le curseur passe systématiquement de A1 à A2 (en
A2 il y a une liste de choix qui est prévue) ou lieu d'un message, mais un
message me satisferait amplement.

Merci d'avance pour ton aide.


Bonjour,

Ceci peut-être, en plus de donnée/validation
'--------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then Exit Sub
If [A1] = "" Then
MsgBox "La cellule A1 doit être renseignée"
[A1].Select
End If
End Sub
'--------
--
Salutations
JJ



"Philippe" a écrit dans le message de news:
45b33112$0$8265$
Bonjour

En A1 un contrôle par Données/Validation/Nombre entier/comprise entre
Minimum 10
Maximum 50

Comment forcer l'utilisateur à renseigner la cellule en A1 ? car en
appuyant directement sur la touche Entrée ou en utilisant la souris le
curseur se deplace évitant le contrôle
Merci de votre aide ?

Phil














Avatar
Nicoh
Bonjour JB,

Je te remercie de ta réponse.
Cela correspond pratiquement à ce que je recherche. E
n fait en A1, je suis amené à saisir différents caractères. Si ceux-ci sont
L ou 1J, alors le curseur doit passer en A2 obligatoirement. Puis, je peux
aller n'imppote où dans la feuille (dans ton exemple, une fois les cellules
renseignées, la feuille est bloquée).
Par contre, si je saisis autre chose que L ou 1J, je peux aller en B1 ou A2
ou partout ailleurs.
Mon souci quand la feuille est bloquée est que mes autres macros ne
fonctionnent pas.

Par avance, merci pour ton aide,

Nicoh


Bonjour,

http://cjoint.com/?bwjcKginqN

-La cellule B1 est déverrouillée si A1 contient L ou 1J
(Au départ ,la cellule A1 ne doit pas être verrouillée
(format/cellule/protection))

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.Count = 1 Then
If Left(Target, 1) = "L" Or Left(Target, 2) = "1J" Then
ActiveSheet.Unprotect Password:=""
[B1].Locked = False
[B1].Interior.ColorIndex = 36
ActiveSheet.Protect Password:=""
Else
ActiveSheet.Unprotect Password:=""
[B1].Locked = True
[B1].Interior.ColorIndex = 3
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Protect Password:=""
End If
End If
End Sub

JB




Avatar
JB
http://cjoint.com/?bwk2A78JaG

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.Count = 1 Then
If Left(Target, 1) = "L" Or Left(Target, 2) = "1J" Then
[B1].Interior.ColorIndex = 36
Target.Offset(0, 1).Select
Else
[B1].Interior.ColorIndex = 3
End If
End If
End Sub

En B1: Données/validation/Liste

=SI(OU(GAUCHE(A1;1)="L";GAUCHE(A1;1)="1J");$H$1:$H$2;)

JB

Bonjour JB,

Je te remercie de ta réponse.
Cela correspond pratiquement à ce que je recherche. E
n fait en A1, je suis amené à saisir différents caractères. Si ce ux-ci sont
L ou 1J, alors le curseur doit passer en A2 obligatoirement. Puis, je peux
aller n'imppote où dans la feuille (dans ton exemple, une fois les cell ules
renseignées, la feuille est bloquée).
Par contre, si je saisis autre chose que L ou 1J, je peux aller en B1 ou A2
ou partout ailleurs.
Mon souci quand la feuille est bloquée est que mes autres macros ne
fonctionnent pas.

Par avance, merci pour ton aide,

Nicoh


Bonjour,

http://cjoint.com/?bwjcKginqN

-La cellule B1 est déverrouillée si A1 contient L ou 1J
(Au départ ,la cellule A1 ne doit pas être verrouillée
(format/cellule/protection))

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.Count = 1 Then
If Left(Target, 1) = "L" Or Left(Target, 2) = "1J" Then
ActiveSheet.Unprotect Password:=""
[B1].Locked = False
[B1].Interior.ColorIndex = 36
ActiveSheet.Protect Password:=""
Else
ActiveSheet.Unprotect Password:=""
[B1].Locked = True
[B1].Interior.ColorIndex = 3
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Protect Password:=""
End If
End If
End Sub

JB