Validation bizarre

Le
Michel B
Bonjours,

j'ai 4 colonnes

A : Inscription (Valeur X ou N)
D : Nom
E : Prénom
F : Date de naissance

Le champ A, ne dois pouvair être renseigné que si les 3 autres sont
renseignées

Une régle de validation a été créée pour la colonne A

=SI(ET(D2<>"";E2<>"";F2<>"");MaListe;)

MaListe = X ; N

MaListe n'est renseigner que si les autres 3 champs sont renseigné, si non
elle est vide.
Cela marche très bien.

Le problème est que l'utilisateur peut saisir directement au clavier sans
que les autres champ soit renseignées, alors qu'il faut le lui interdire.
Je ne connais pas bien VBA et je séche.

Merci d'avance pour toute l'aide
Cordialement
Michel Bézoteaux
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
Daniel.C
Le #18758271
Bonjour.
Mets la macro suivante dans le module feuille (clic droit sue l'onglet
de la feuille et clic sur visualiser le code; colle ensuite la macro
dans la partie droite de la fenêtre) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
If Cells(Target.Row, 5) = "" And Cells(Target.Row, 6) = "" And
Cells(Target.Row, 4) = "" Then
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End Sub

Cordialement.
Daniel

Bonjours,

j'ai 4 colonnes

A : Inscription (Valeur X ou N)
D : Nom
E : Prénom
F : Date de naissance

Le champ A, ne dois pouvair être renseigné que si les 3 autres sont
renseignées

Une régle de validation a été créée pour la colonne A

=SI(ET(D2<>"";E2<>"";F2<>"");MaListe;)

MaListe = X ; N

MaListe n'est renseigner que si les autres 3 champs sont renseigné, si non
elle est vide.
Cela marche très bien.

Le problème est que l'utilisateur peut saisir directement au clavier sans que
les autres champ soit renseignées, alors qu'il faut le lui interdire.
Je ne connais pas bien VBA et je séche.

Merci d'avance pour toute l'aide
Cordialement
Michel Bézoteaux


Daniel.C
Le #18758411
Cette macro n'efface toutefois pas la colonne A si tu effaces une
donnée des colonnes D:F. Si tu veux ajouter cette fonctionnalité,
dis-le.
Daniel

Bonjour.
Mets la macro suivante dans le module feuille (clic droit sue l'onglet de la
feuille et clic sur visualiser le code; colle ensuite la macro dans la partie
droite de la fenêtre) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
If Cells(Target.Row, 5) = "" And Cells(Target.Row, 6) = "" And
Cells(Target.Row, 4) = "" Then
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End Sub

Cordialement.
Daniel

Bonjours,

j'ai 4 colonnes

A : Inscription (Valeur X ou N)
D : Nom
E : Prénom
F : Date de naissance

Le champ A, ne dois pouvair être renseigné que si les 3 autres sont
renseignées

Une régle de validation a été créée pour la colonne A

=SI(ET(D2<>"";E2<>"";F2<>"");MaListe;)

MaListe = X ; N

MaListe n'est renseigner que si les autres 3 champs sont renseigné, si non
elle est vide.
Cela marche très bien.

Le problème est que l'utilisateur peut saisir directement au clavier sans
que les autres champ soit renseignées, alors qu'il faut le lui interdire.
Je ne connais pas bien VBA et je séche.

Merci d'avance pour toute l'aide
Cordialement
Michel Bézoteaux




Michel B
Le #18758851
Bonjour Daniel.
j'ai collé la fonction :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column 1 Then Exit Sub
If Cells(Target.Row, 5) = "" And Cells(Target.Row, 6) = "" And
Cells(Target.Row, 4) = "" Then
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End Sub

Et les ligne 2,3,4 se mette en rouge et produise une Erreur ?
Si on pouvé vidéer la cellule "A" en cas d'effacement de l'une des autres
cellules cela serait le pied.

Merci pour ton aide
Cordialement
Michel




"Daniel.C" uNFU1%
Cette macro n'efface toutefois pas la colonne A si tu effaces une donnée
des colonnes D:F. Si tu veux ajouter cette fonctionnalité, dis-le.
Daniel

Bonjour.
Mets la macro suivante dans le module feuille (clic droit sue l'onglet de
la feuille et clic sur visualiser le code; colle ensuite la macro dans la
partie droite de la fenêtre) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
If Cells(Target.Row, 5) = "" And Cells(Target.Row, 6) = "" And
Cells(Target.Row, 4) = "" Then
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End Sub

Cordialement.
Daniel

Bonjours,

j'ai 4 colonnes

A : Inscription (Valeur X ou N)
D : Nom
E : Prénom
F : Date de naissance

Le champ A, ne dois pouvair être renseigné que si les 3 autres sont
renseignées

Une régle de validation a été créée pour la colonne A

=SI(ET(D2<>"";E2<>"";F2<>"");MaListe;)

MaListe = X ; N

MaListe n'est renseigner que si les autres 3 champs sont renseigné, si
non elle est vide.
Cela marche très bien.

Le problème est que l'utilisateur peut saisir directement au clavier
sans que les autres champ soit renseignées, alors qu'il faut le lui
interdire.
Je ne connais pas bien VBA et je séche.

Merci d'avance pour toute l'aide
Cordialement
Michel Bézoteaux








Daniel.C
Le #18759491
En fait, les lignes 2 et 3 ne doivent faire qu'une seule ligne.
La ligne 1 comporte un ">" après Target.Column. N'hésite pas à revenir
si tu as un problème, je posterai un classeur exemple.
Daniel

Bonjour Daniel.
j'ai collé la fonction :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column 1 Then Exit Sub
If Cells(Target.Row, 5) = "" And Cells(Target.Row, 6) = "" And
Cells(Target.Row, 4) = "" Then
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End Sub

Et les ligne 2,3,4 se mette en rouge et produise une Erreur ?
Si on pouvé vidéer la cellule "A" en cas d'effacement de l'une des autres
cellules cela serait le pied.

Merci pour ton aide
Cordialement
Michel




"Daniel.C" uNFU1%
Cette macro n'efface toutefois pas la colonne A si tu effaces une donnée
des colonnes D:F. Si tu veux ajouter cette fonctionnalité, dis-le.
Daniel

Bonjour.
Mets la macro suivante dans le module feuille (clic droit sue l'onglet de
la feuille et clic sur visualiser le code; colle ensuite la macro dans la
partie droite de la fenêtre) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
If Cells(Target.Row, 5) = "" And Cells(Target.Row, 6) = "" And
Cells(Target.Row, 4) = "" Then
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End Sub

Cordialement.
Daniel

Bonjours,

j'ai 4 colonnes

A : Inscription (Valeur X ou N)
D : Nom
E : Prénom
F : Date de naissance

Le champ A, ne dois pouvair être renseigné que si les 3 autres sont
renseignées

Une régle de validation a été créée pour la colonne A

=SI(ET(D2<>"";E2<>"";F2<>"");MaListe;)

MaListe = X ; N

MaListe n'est renseigner que si les autres 3 champs sont renseigné, si
non elle est vide.
Cela marche très bien.

Le problème est que l'utilisateur peut saisir directement au clavier sans
que les autres champ soit renseignées, alors qu'il faut le lui interdire.
Je ne connais pas bien VBA et je séche.

Merci d'avance pour toute l'aide
Cordialement
Michel Bézoteaux










Daniel.C
Le #18759481
Le fait que les lignes soient coupées en deux vient du fait que les
lecteurs de news tronquent les lignes à 77 caractères, un usage qui
doit dater de l'époque des cartes perforées (80 colonnes dont un numéro
de séquence dans les dernières positions). ;-)))
Daniel

Bonjour Daniel.
j'ai collé la fonction :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column 1 Then Exit Sub
If Cells(Target.Row, 5) = "" And Cells(Target.Row, 6) = "" And
Cells(Target.Row, 4) = "" Then
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End Sub

Et les ligne 2,3,4 se mette en rouge et produise une Erreur ?
Si on pouvé vidéer la cellule "A" en cas d'effacement de l'une des autres
cellules cela serait le pied.

Merci pour ton aide
Cordialement
Michel




"Daniel.C" uNFU1%
Cette macro n'efface toutefois pas la colonne A si tu effaces une donnée
des colonnes D:F. Si tu veux ajouter cette fonctionnalité, dis-le.
Daniel

Bonjour.
Mets la macro suivante dans le module feuille (clic droit sue l'onglet de
la feuille et clic sur visualiser le code; colle ensuite la macro dans la
partie droite de la fenêtre) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
If Cells(Target.Row, 5) = "" And Cells(Target.Row, 6) = "" And
Cells(Target.Row, 4) = "" Then
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End Sub

Cordialement.
Daniel

Bonjours,

j'ai 4 colonnes

A : Inscription (Valeur X ou N)
D : Nom
E : Prénom
F : Date de naissance

Le champ A, ne dois pouvair être renseigné que si les 3 autres sont
renseignées

Une régle de validation a été créée pour la colonne A

=SI(ET(D2<>"";E2<>"";F2<>"");MaListe;)

MaListe = X ; N

MaListe n'est renseigner que si les autres 3 champs sont renseigné, si
non elle est vide.
Cela marche très bien.

Le problème est que l'utilisateur peut saisir directement au clavier sans
que les autres champ soit renseignées, alors qu'il faut le lui interdire.
Je ne connais pas bien VBA et je séche.

Merci d'avance pour toute l'aide
Cordialement
Michel Bézoteaux










Michel B
Le #18759571
Re bonjour Daniel

ça marche impec, pour ta proposition :

"Cette macro n'efface toutefois pas la colonne A si tu effaces une
donnée des colonnes D:F. Si tu veux ajouter cette fonctionnalité,
dis-le."

Effectivement je serais preneur car cela finaliserai le verrouillage.

Encore merci
Michel


"Daniel.C" Onpl9%
Le fait que les lignes soient coupées en deux vient du fait que les
lecteurs de news tronquent les lignes à 77 caractères, un usage qui doit
dater de l'époque des cartes perforées (80 colonnes dont un numéro de
séquence dans les dernières positions). ;-)))
Daniel

Bonjour Daniel.
j'ai collé la fonction :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column 1 Then Exit Sub
If Cells(Target.Row, 5) = "" And Cells(Target.Row, 6) = "" And
Cells(Target.Row, 4) = "" Then
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End Sub

Et les ligne 2,3,4 se mette en rouge et produise une Erreur ?
Si on pouvé vidéer la cellule "A" en cas d'effacement de l'une des autres
cellules cela serait le pied.

Merci pour ton aide
Cordialement
Michel




"Daniel.C" uNFU1%
Cette macro n'efface toutefois pas la colonne A si tu effaces une donnée
des colonnes D:F. Si tu veux ajouter cette fonctionnalité, dis-le.
Daniel

Bonjour.
Mets la macro suivante dans le module feuille (clic droit sue l'onglet
de la feuille et clic sur visualiser le code; colle ensuite la macro
dans la partie droite de la fenêtre) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
If Cells(Target.Row, 5) = "" And Cells(Target.Row, 6) = "" And
Cells(Target.Row, 4) = "" Then
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End Sub

Cordialement.
Daniel

Bonjours,

j'ai 4 colonnes

A : Inscription (Valeur X ou N)
D : Nom
E : Prénom
F : Date de naissance

Le champ A, ne dois pouvair être renseigné que si les 3 autres sont
renseignées

Une régle de validation a été créée pour la colonne A

=SI(ET(D2<>"";E2<>"";F2<>"");MaListe;)

MaListe = X ; N

MaListe n'est renseigner que si les autres 3 champs sont renseigné, si
non elle est vide.
Cela marche très bien.

Le problème est que l'utilisateur peut saisir directement au clavier
sans que les autres champ soit renseignées, alors qu'il faut le lui
interdire.
Je ne connais pas bien VBA et je séche.

Merci d'avance pour toute l'aide
Cordialement
Michel Bézoteaux














Daniel.C
Le #18760491
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Union(Columns(1), Range(Columns(4), _
Columns(6)))) Is Nothing Then Exit Sub
If Application.CountA(Range(Cells(Target.Row, 4), _
Cells(Target.Row, 6))) < 3 Then
Application.EnableEvents = False
Cells(Target.Row, 1) = ""
Application.EnableEvents = True
End If
End Sub
Daniel

Re bonjour Daniel

ça marche impec, pour ta proposition :

"Cette macro n'efface toutefois pas la colonne A si tu effaces une
donnée des colonnes D:F. Si tu veux ajouter cette fonctionnalité,
dis-le."

Effectivement je serais preneur car cela finaliserai le verrouillage.

Encore merci
Michel


"Daniel.C" Onpl9%
Le fait que les lignes soient coupées en deux vient du fait que les
lecteurs de news tronquent les lignes à 77 caractères, un usage qui doit
dater de l'époque des cartes perforées (80 colonnes dont un numéro de
séquence dans les dernières positions). ;-)))
Daniel

Bonjour Daniel.
j'ai collé la fonction :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column 1 Then Exit Sub
If Cells(Target.Row, 5) = "" And Cells(Target.Row, 6) = "" And
Cells(Target.Row, 4) = "" Then
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End Sub

Et les ligne 2,3,4 se mette en rouge et produise une Erreur ?
Si on pouvé vidéer la cellule "A" en cas d'effacement de l'une des autres
cellules cela serait le pied.

Merci pour ton aide
Cordialement
Michel




"Daniel.C" uNFU1%
Cette macro n'efface toutefois pas la colonne A si tu effaces une donnée
des colonnes D:F. Si tu veux ajouter cette fonctionnalité, dis-le.
Daniel

Bonjour.
Mets la macro suivante dans le module feuille (clic droit sue l'onglet
de la feuille et clic sur visualiser le code; colle ensuite la macro
dans la partie droite de la fenêtre) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
If Cells(Target.Row, 5) = "" And Cells(Target.Row, 6) = "" And
Cells(Target.Row, 4) = "" Then
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
End If
End Sub

Cordialement.
Daniel

Bonjours,

j'ai 4 colonnes

A : Inscription (Valeur X ou N)
D : Nom
E : Prénom
F : Date de naissance

Le champ A, ne dois pouvair être renseigné que si les 3 autres sont
renseignées

Une régle de validation a été créée pour la colonne A

=SI(ET(D2<>"";E2<>"";F2<>"");MaListe;)

MaListe = X ; N

MaListe n'est renseigner que si les autres 3 champs sont renseigné, si
non elle est vide.
Cela marche très bien.

Le problème est que l'utilisateur peut saisir directement au clavier
sans que les autres champ soit renseignées, alors qu'il faut le lui
interdire.
Je ne connais pas bien VBA et je séche.

Merci d'avance pour toute l'aide
Cordialement
Michel Bézoteaux
















Publicité
Poster une réponse
Anonyme