validation de donnée

  • Initiateur de la discussion Initiateur de la discussion angoul
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

angoul

XLDnaute Impliqué
Bonsoir j'ai besoin de vos petite lumiere
j'aimerai mettre sur une cellule M1 à M100 une validation de donnée
c'est dire que si la personne met un X, alors cela renvoi en debut de ligne suivant
par contre si il met une autre lettre ou rien alors cela affiche un message

merci de votre aide
 
Re : validation de donnée

Bonjour Angoul

essaie ceci:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("M1:M100")) Is Nothing Then
ligne = Target.Row
If Target.Value = "x" Then
Cells(ligne + 1, 1).Select
Else
MsgBox ("Veuillez remplir cette cellule")
End If
End If
End Sub
pour répondre à ta question

mais on peut s'y prendre autrement si on ne veut que des "x" dans cette zone

à+
Philippe
 
Re : validation de donnée

Bonjour Angoul, Philippe

pas de problème chez moi, juste peut être un test à rajouter... A noter le code doit être placé dans le module de la feuille concernée => click droit sur l'onglet => visualiser le code
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("M1:M100")) Is Nothing Then
ligne = Target.Row
If Target.Value = "x" Then
Cells(ligne + 1, 1).Select
Else
MsgBox ("Veuillez remplir cette cellule")
End If
End If
End Sub


bonne journée
@+
 
Re : validation de donnée

slt pierrot merci de ton aide
par contre j'arrive pas a mettre le code,car j'ai deja un autre code :
j'ai mis comme sa, mais sa beug peut tu me dire ou est l'erreur?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel
Dim Mes
Dim I As Byte
Mes = Array("Manque le nom", "Manque le prénom", "Manque la catégorie", _
"Manque le N° de licence", "Manque le sexe", "Manque le poids", _
"Manque Taille", "Manque date de naissance")
Cel = Array("C", "D", "E", "F", "G", "H", "I", "J")

If Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
If Not Intersect(Range("M10:M100"), Target) Is Nothing Then
For I = 0 To UBound(Cel)
If Range(Cel(I) & Target.Row) = "" Then
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
MsgBox Mes(I)
Exit Sub
End If
Next I
End If
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("M1:M100")) Is Nothing Then
ligne = Target.Row
If Target.Value = "x" Then
Cells(ligne + 1, 1).Select
Else
MsgBox ("Veuillez remplir cette cellule")
End If
End Sub

merci
 
Re : validation de donnée

alors le code sert a verifier si certaine cellule sont rempli ou pas
peut etre que le mieux c'est avec le fichier pour comprendre.
moi j'ai l'erreur ici :
ligne = Target.Row


se fichier sert a l'inscription a des competitions de club, chaque club me renvoi le fichier rempli et ensuite je doit faire une compilation de tous c'est fichier pour en faire un
la deuxieme phase j'ai l'idee mais par contre je ne sait pas comment faire
 

Pièces jointes

Re : validation de donnée

Re,

ce n'est pas le même code dans ton fichier.... d'autre part tu as ceci : "Option Explicit
" cela implique que toutes les variables soient déclarées.... il faut donc déclarer "ligne" :
Code:
Dim ligne As Long
 
Re : validation de donnée

Re,
alors le code sert a verifier si certaine cellule sont rempli ou pas
peut etre que le mieux c'est avec le fichier pour comprendre.
moi j'ai l'erreur ici :
ligne = Target.Row


se fichier sert a l'inscription a des competitions de club, chaque club me renvoi le fichier rempli et ensuite je doit faire une compilation de tous c'est fichier pour en faire un
la deuxieme phase j'ai l'idee mais par contre je ne sait pas comment faire
si il y a seulement besoin de vérifier si certaines cellules sont remplies ou pas, l'utilisation des MFC devrait suffire

à+
Philippe
 
Re : validation de donnée

Voila j'ai copier le code comme si dessous

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel
Dim Mes
Dim I As Byte
Mes = Array("Manque le nom", "Manque le prénom", "Manque la catégorie", _
"Manque le N° de licence", "Manque le sexe", "Manque le poids", _
"Manque Taille", "Manque date de naissance")
Cel = Array("C", "D", "E", "F", "G", "H", "I", "J")
If Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
If Not Intersect(Range("M12:M100"), Target) Is Nothing Then
For I = 0 To UBound(Cel)
If Range(Cel(I) & Target.Row) = "" Then
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
MsgBox Mes(I)
Exit Sub
End If
Next I
End If
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("M1:M100")) Is Nothing Then
Dim ligne As Long
ligne = Target.Row
If Target.Value = "x" Then
Cells(ligne + 1, 1).Select
Else
MsgBox ("Veuillez remplir cette cellule")
End If
End If
End Sub



j'ai un message qui me dit :
nom ambigu détecté : worksheet_Change

voila j'espere que cela te parle car moi non
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
284
Réponses
4
Affichages
463
Réponses
5
Affichages
613
Réponses
38
Affichages
1 K
Retour