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

j'ai mis cela
mais cela fait rien cette fois

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
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("M12: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
Next I
End If
End Sub
 
Re : validation de donnée

Voila j'ai modifier et toujour aucun resultat
et j'ai la premiere ligne en jaune

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)
End If
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("M12: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 Sub

je comprend cela me fatigue, surtout que j'ai pas assez de connaissance pour comprendre
 
Re : validation de donnée

Re,

regarde ceci, à placer dans le module de la feuille, seule 1 procédure "change" doit être présente :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Or Target.Value = "" Then Exit Sub
If Not Intersect(Range("M12:M100"), Target) Is Nothing Then
    Application.EnableEvents = False
    If WorksheetFunction.CountA(Cells(Target.Row, 3).Resize(1, 8)) < 8 Then Target.ClearContents
    Application.EnableEvents = True
    If Target.Value = "x" Then Cells(Target.Row + 1, 1).Select
End If
End Sub

Edition : attention dans ton fichier de très nombreuses cellules fusionnées, pas bon ménage avec vba...
 
Re : validation de donnée

cela ne fait rien, en plus sa me creer une erreur sur le module 1 pour la creation de la ligne

ne peut tu pas regarder a mon fichier et le modifier. je c'est que c'est pas l'esprit, qu'il faut mettre la mains a la pate, mais la je comprend plus rien
 
Re : validation de donnée

merci pierrot c'est sympa, mais helas il me donne plus le nom ou il y a un manque de saisie, en plus cela beug quand je clique sur ajouter une ligne, quand on valide la saisie cela revient pas en debut de ligne

mais je te remercie de ton temps et veut plus abuser de toi
 
Re : validation de donnée

Re,

pour le bogue lors de l'insertion, modifie comme suit :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Not Intersect(Range("M12:M100"), Target) Is Nothing Then
    Application.EnableEvents = False
    If WorksheetFunction.CountA(Cells(Target.Row, 3).Resize(1, 8)) < 8 Then _
        Target.ClearContents: MsgBox "manque une donnée..."
    Application.EnableEvents = True
    If Target.Value = "x" Then Cells(Target.Row + 1, 1).Select
End If
End Sub
 
Re : validation de donnée

Re,

pour la selection, c'est cette partie qu'il faut modifier :
Code:
Cells(Target.Row + 1, 1).Select

en l'état sélectionne la colonne 1, ligne sous celle cliquée...

pour rester sur la même ligne :
Code:
Cells(Target.Row, 1).Select
 
Re : validation de donnée

Re,

avec le bon message :

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Not Intersect(Range("M12:M100"), Target) Is Nothing Then
    If WorksheetFunction.CountA(Cells(Target.Row, 3).Resize(1, 8)) < 8 Then
        Application.EnableEvents = False
        Target.ClearContents
        Application.EnableEvents = True
        For Each c In Cells(Target.Row, 3).Resize(1, 8)
            If IsEmpty(c) Then MsgBox "manque : " & Cells(11, c.Column).Value
        Next c
    End If
    If Target.Value = "x" Then Cells(Target.Row, 1).Select
End If
End Sub
 
Re : validation de donnée

MERCI PIERROT, mais je doit envoyer le fichier a 17h15, a mon responsable. Je pense que je vait le laisser comme sa, car pour etre honete, je ne comprend pas ce que je fait et cela est fatiguant. de faire et rien comprendre
 
- 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