OVH Cloud OVH Cloud

Ne pas passer avec "Entrée"

8 réponses
Avatar
Louis
Bonjour, j'ai cette proc qui doit obliger un utilisateur à saisir uniquement
un max de 8 chiffres. Le pb est qu'il ne faut pas qu'il efface le chiffre
afin qu'il puisse voir où est l'erreur, mais il peut également passer outre
en faisant "Entrée"comment faire afin qu'il ne saisisse que 8 caractères au
maximum et qu'il ne puisse pas passer outre ?
Merci beaucoup
Louis

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Len(Target) > 8 Then
MsgBox "Vous avez déposé " & Len(Target) & " caractères dans cette cellule"
_
& vbNewLine & "Vous devez en retirer " & Len(Target) - 8, vbInformation, _
"Nombre de caractère > 8"
Target.Select
End If
End If
End Sub

8 réponses

Avatar
isabelle
bonjour Louis,

ajoute y cette ligne,

If Len(Target) > 8 Then
Range(Target.address) = Left(Target, 8) '<-----
MsgBox "Vous avez déposé... "

isabelle


Bonjour, j'ai cette proc qui doit obliger un utilisateur à saisir uniquement
un max de 8 chiffres. Le pb est qu'il ne faut pas qu'il efface le chiffre
afin qu'il puisse voir où est l'erreur, mais il peut également passer outre
en faisant "Entrée"comment faire afin qu'il ne saisisse que 8 caractères au
maximum et qu'il ne puisse pas passer outre ?
Merci beaucoup
Louis

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Len(Target) > 8 Then
MsgBox "Vous avez déposé " & Len(Target) & " caractères dans cette cellule"
_
& vbNewLine & "Vous devez en retirer " & Len(Target) - 8, vbInformation, _
"Nombre de caractère > 8"
Target.Select
End If
End If
End Sub


Avatar
Louis
Bonjour Isabelle
le pb c'est que l'on peut passe outre.
Louis

"isabelle" a écrit dans le message de
news:
bonjour Louis,

ajoute y cette ligne,

If Len(Target) > 8 Then
Range(Target.address) = Left(Target, 8) '<-----
MsgBox "Vous avez déposé... "

isabelle


Bonjour, j'ai cette proc qui doit obliger un utilisateur à saisir
uniquement


un max de 8 chiffres. Le pb est qu'il ne faut pas qu'il efface le
chiffre


afin qu'il puisse voir où est l'erreur, mais il peut également passer
outre


en faisant "Entrée"comment faire afin qu'il ne saisisse que 8 caractères
au


maximum et qu'il ne puisse pas passer outre ?
Merci beaucoup
Louis

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Len(Target) > 8 Then
MsgBox "Vous avez déposé " & Len(Target) & " caractères dans cette
cellule"


_
& vbNewLine & "Vous devez en retirer " & Len(Target) - 8, vbInformation,
_


"Nombre de caractère > 8"
Target.Select
End If
End If
End Sub




Avatar
isabelle
le message devrait indiquer que la valeur entrée a été tronquer à 8
caractères ou sinon une autre solution serait de vider la cellule.

If Len(Target) > 8 Then
Range(Target.address).delete
MsgBox "Vous avez déposé...recommencer "

isabelle


Bonjour Isabelle
le pb c'est que l'on peut passe outre.
Louis

"isabelle" a écrit dans le message de
news:
bonjour Louis,

ajoute y cette ligne,

If Len(Target) > 8 Then
Range(Target.address) = Left(Target, 8) '<-----
MsgBox "Vous avez déposé... "

isabelle


Bonjour, j'ai cette proc qui doit obliger un utilisateur à saisir
uniquement


un max de 8 chiffres. Le pb est qu'il ne faut pas qu'il efface le
chiffre


afin qu'il puisse voir où est l'erreur, mais il peut également passer
outre


en faisant "Entrée"comment faire afin qu'il ne saisisse que 8 caractères
au


maximum et qu'il ne puisse pas passer outre ?
Merci beaucoup
Louis

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Len(Target) > 8 Then
MsgBox "Vous avez déposé " & Len(Target) & " caractères dans cette
cellule"


_
& vbNewLine & "Vous devez en retirer " & Len(Target) - 8, vbInformation,
_


"Nombre de caractère > 8"
Target.Select
End If
End If
End Sub






Avatar
Starwing
Bonjour,

Ne serait-il pas préférable de passer par :

Données - Validation??

Starwing


-----Message d'origine-----
Bonjour, j'ai cette proc qui doit obliger un utilisateur
à saisir uniquement

un max de 8 chiffres. Le pb est qu'il ne faut pas qu'il
efface le chiffre

afin qu'il puisse voir où est l'erreur, mais il peut
également passer outre

en faisant "Entrée"comment faire afin qu'il ne saisisse
que 8 caractères au

maximum et qu'il ne puisse pas passer outre ?
Merci beaucoup
Louis

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Len(Target) > 8 Then
MsgBox "Vous avez déposé " & Len(Target) & " caractères
dans cette cellule"

_
& vbNewLine & "Vous devez en retirer " & Len(Target) - 8,
vbInformation, _

"Nombre de caractère > 8"
Target.Select
End If
End If
End Sub


.



Avatar
AV
le pb c'est que l'on peut passe outre.


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
If Len(Target) > 8 Then
Target.Select
Application.EnableEvents = False
MsgBox "Vous avez déposé.....blabla"
Target = ""
Application.EnableEvents = True
End If
End Sub

AV

Avatar
Louis
Merci pour cette soluce
Louis

"AV" a écrit dans le message de
news:
le pb c'est que l'on peut passe outre.


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
If Len(Target) > 8 Then
Target.Select
Application.EnableEvents = False
MsgBox "Vous avez déposé.....blabla"
Target = ""
Application.EnableEvents = True
End If
End Sub

AV





Avatar
Louis
Ok pour vidage de cellule
merci
Louis

"isabelle" a écrit dans le message de
news:
le message devrait indiquer que la valeur entrée a été tronquer à 8
caractères ou sinon une autre solution serait de vider la cellule.

If Len(Target) > 8 Then
Range(Target.address).delete
MsgBox "Vous avez déposé...recommencer "

isabelle


Bonjour Isabelle
le pb c'est que l'on peut passe outre.
Louis

"isabelle" a écrit dans le message de
news:
bonjour Louis,

ajoute y cette ligne,

If Len(Target) > 8 Then
Range(Target.address) = Left(Target, 8) '<-----
MsgBox "Vous avez déposé... "

isabelle


Bonjour, j'ai cette proc qui doit obliger un utilisateur à saisir
uniquement


un max de 8 chiffres. Le pb est qu'il ne faut pas qu'il efface le
chiffre


afin qu'il puisse voir où est l'erreur, mais il peut également
passer




outre
en faisant "Entrée"comment faire afin qu'il ne saisisse que 8
caractères




au
maximum et qu'il ne puisse pas passer outre ?
Merci beaucoup
Louis

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Len(Target) > 8 Then
MsgBox "Vous avez déposé " & Len(Target) & " caractères dans cette
cellule"


_
& vbNewLine & "Vous devez en retirer " & Len(Target) - 8,
vbInformation,




_
"Nombre de caractère > 8"
Target.Select
End If
End If
End Sub








Avatar
Louis
Je préfère par VBA
Louis

"Starwing" a écrit dans le message de
news:e29f01c43c27$95eee8f0$
Bonjour,

Ne serait-il pas préférable de passer par :

Données - Validation??

Starwing


-----Message d'origine-----
Bonjour, j'ai cette proc qui doit obliger un utilisateur
à saisir uniquement

un max de 8 chiffres. Le pb est qu'il ne faut pas qu'il
efface le chiffre

afin qu'il puisse voir où est l'erreur, mais il peut
également passer outre

en faisant "Entrée"comment faire afin qu'il ne saisisse
que 8 caractères au

maximum et qu'il ne puisse pas passer outre ?
Merci beaucoup
Louis

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Len(Target) > 8 Then
MsgBox "Vous avez déposé " & Len(Target) & " caractères
dans cette cellule"

_
& vbNewLine & "Vous devez en retirer " & Len(Target) - 8,
vbInformation, _

"Nombre de caractère > 8"
Target.Select
End If
End If
End Sub


.