validation de donnée

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
 

phlaurent55

Nous a quittés en 2020
Repose en paix
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
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

angoul

XLDnaute Impliqué
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
 

angoul

XLDnaute Impliqué
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

  • Copie de competition.zip
    20.1 KB · Affichages: 49

Pierrot93

XLDnaute Barbatruc
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
 

phlaurent55

Nous a quittés en 2020
Repose en paix
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
 

angoul

XLDnaute Impliqué
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
 

Discussions similaires

Réponses
4
Affichages
134
  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
466
Réponses
8
Affichages
499
Réponses
18
Affichages
839

Statistiques des forums

Discussions
312 778
Messages
2 092 039
Membres
105 162
dernier inscrit
djikon