Fonction conditionnelle Validation

Le
celtic77
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=7C 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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Carim
Le #22674801
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 ...
celtic77
Le #22674961
On 14 oct, 10:54, 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 ...



Effectivement je le pense aussi, mais je ne sais pas l'écrire !
Merci à toi
isabelle
Le #22675791
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
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
isabelle
Le #22675781
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
celtic77
Le #22675861
On 14 oct, 15:17, 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 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
michel ou sam
Le #22676311
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"
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
Publicité
Poster une réponse
Anonyme