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

Fonction conditionnelle Validation

6 réponses
Avatar
celtic77
Bonjour,
J'ai un souci je n'arrive pas =E0 cr=E9er une validation avec une formule
si.
Je m'explique :
Colonne A : code rempli par utilisateur qui sera 7C ou 7T
Colonne B : l' utilisateur ne doit rien remplier si A =3D 7C, ou
renseigner avec un axe =E0 4 caract=E8res (pas plus) telque 9999
Je pensais mettre dans validation une formule du genre : si(A=3D7C alors
"" sinon nbcar(A) doit =EAtre =E9gal =E0 4)
Mais je n'y arrive pas, peut etre dois je passer par une macro qui
s'ex=E9cute quand on saisi dans A ??

Merci de votre aide

6 réponses

Avatar
Carim
Bonjour,

A priori, il te faudrait une petite macro évènementielle ...
surtout si tu veux "forcer" l'utilisateur à renseigner la colonne B
juste après avoir saisi la colonne A ...
Avatar
celtic77
On 14 oct, 10:54, Carim wrote:
Bonjour,

A priori, il te faudrait une petite macro évènementielle ...
surtout si tu veux "forcer" l'utilisateur à renseigner la colonne B
juste après avoir saisi la colonne A ...



Effectivement je le pense aussi, mais je ne sais pas l'écrire !
Merci à toi
Avatar
isabelle
bonjoue celtic77,

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("B:B"))
If isect Is Nothing Then Exit Sub
If Target.Offset(0, -1) = "7c" Then
If IsNumeric(Target) Then
If Not Target >= 1000 And Target <= 9999 Then
MsgBox " le nombre doit être entre 1000 et 9999"
Target = ""
End If
Else
MsgBox " la valeur doit être un nombre situer entre 1000 et 9999"
Target = ""
End If
End If
End Sub

isabelle


Le 2010-10-14 05:26, celtic77 a écrit :
On 14 oct, 10:54, Carim wrote:
Bonjour,

A priori, il te faudrait une petite macro évènementielle ...
surtout si tu veux "forcer" l'utilisateur à renseigner la colonne B
juste après avoir saisi la colonne A ...



Effectivement je le pense aussi, mais je ne sais pas l'écrire !
Merci à toi
Avatar
isabelle
correction,

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("B:B"))
If isect Is Nothing Then Exit Sub
If Target.Offset(0, -1) = "7c" Then
If IsNumeric(Target) Then
If Not Target >= 1000 And Target <= 9999 Then
MsgBox " le nombre doit être entre 1000 et 9999"
End If
Else
MsgBox " la valeur doit être un nombre situer entre 1000 et 9999"
End If
End If
End Sub

isabelle

Le 2010-10-14 09:09, isabelle a écrit :
bonjoue celtic77,

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("B:B"))
If isect Is Nothing Then Exit Sub
If Target.Offset(0, -1) = "7c" Then
If IsNumeric(Target) Then
If Not Target >= 1000 And Target <= 9999 Then
MsgBox " le nombre doit être entre 1000 et 9999"
Target = ""
End If
Else
MsgBox " la valeur doit être un nombre situer entre 1000 et 9999"
Target = ""
End If
End If
End Sub

isabelle
Avatar
celtic77
On 14 oct, 15:17, isabelle wrote:
correction,

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("B:B"))
If isect Is Nothing Then Exit Sub
If Target.Offset(0, -1) = "7c" Then
     If IsNumeric(Target) Then
         If Not Target >= 1000 And Target <= 9999 Then
             MsgBox " le nombre doit être entre 1000 et 9 999"
         End If
     Else
         MsgBox " la valeur doit être un nombre situer entre 1000 et 9999"
     End If
End If
End Sub

isabelle

Le 2010-10-14 09:09, isabelle a écrit :

> bonjoue celtic77,

> Private Sub Worksheet_Change(ByVal Target As Range)
> Set isect = Application.Intersect(Target, Range("B:B"))
> If isect Is Nothing Then Exit Sub
> If Target.Offset(0, -1) = "7c" Then
>      If IsNumeric(Target) Then
>          If Not Target >= 1000 And Target <= 9999 Then
>              MsgBox " le nombre doit être entre 1000 et 9999"
>              Target = ""
>          End If
>      Else
>          MsgBox " la valeur doit être un nombre situer entr e 1000 et 9999"
>          Target = ""
>      End If
> End If
> End Sub

> isabelle



Merci beaucoup Isabelle je vais essayer cela dès que possible
Avatar
michel ou sam
sans macro
pour la cellule B2
faire Données/Validation
Autoriser : Longueur de texte
Données : inférieur à
Maximum : =5*(A2="7T")

faire OK
copier la cellule vers le bas en tirant vers le bas

Michel

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

Bonjour,
J'ai un souci je n'arrive pas à créer une validation avec une formule
si.
Je m'explique :
Colonne A : code rempli par utilisateur qui sera 7C ou 7T
Colonne B : l' utilisateur ne doit rien remplier si A = 7C, ou
renseigner avec un axe à 4 caractères (pas plus) telque 9999
Je pensais mettre dans validation une formule du genre : si(A| alors
"" sinon nbcar(A) doit être égal à 4)
Mais je n'y arrive pas, peut etre dois je passer par une macro qui
s'exécute quand on saisi dans A ??

Merci de votre aide