IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[E-07] Valider une saisie dans un champ


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut [E-07] Valider une saisie dans un champ
    Bonjour a tous, forum,

    Je souhaiterai paufiner mon code ci joint, je dois entrer des N° de chèques
    pour ca les chiffres et la longueur c'est bon

    Mais ESPACE et CHAINE VIDE ca passe Greueee je préfèrerai que le curseur reste sur la cellule TANT que je n'ai pas entrer et VALIDER au moins un chiffre ou jusqu'a 7 chiffres maxi.

    Si vous avez le petit code complémentaire, comment ca serai gentil

    Merci a vous du chti coup de main

    Bonne apres midi

    Raymond

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    un exemple pour cellule vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'exemple pour a1
    If Len(Range("a1")) < 1 Then
    MsgBox "saisissez queleque chose"
    End If
    End Sub
    si ça t'aide, enleve aussi les espaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'exemple pour a1
    If Len(Range("a1")) < 1 Then
    MsgBox "saisissez queleque chose"
    End If
    Range("a1") = Application.WorksheetFunction.Substitute(Range("a1"), " ", "")
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Bonjour,
    je viens d'essayer ton code merci c'est sympa, mais j'ai oublier de vous dire voir le fichier joint, "désoler" les explications y sont

    Donc ce n'ai pas tout a fait ca, mais merci tout de meme

    Bonne apres midi

    Raymond

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Voici un lien qui devrait t'intéresser :
    http://silkyroad.developpez.com/VBA/...nesCaracteres/


    sinon voici un bout de code
    ligne contient la chaine de caractère
    il vérifie que tout les caractères sont bien des chiffre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i = 1 To Len(ligne)
        If Mid(ligne, i, 1) Like "[!0-9]" Then
            msgbox("Saisie non conforme")
            exit sub
        End If
    Next i
    Si tu veux une condition sur la taille test len(ligne)

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    j'ai regardé ton code et changer le numéro d'erreur par un message et comme ça ca marche pour les espaces

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = 1 To Len(Target)
    z = Mid(.Value, i, 1)
    If InStr("0123456789", z) = 0 Or .Value = " " Then MsgBox "non": Exit For
    Next i
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    RE

    Merci j'allais justement te demander, car je n'arrivai pas, bon je regarde avec ton nouveau code
    te redit si ok

    Ray

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    si tu n'es pas trop pressé, je regarderai ce soir, à partir de 18 h mais à mon avis ça ne doit pas être un gros problème (sélectionner le bon évenement dans la feuille?)
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Citation Envoyé par Krovax Voir le message
    Voici un lien qui devrait t'intéresser :
    http://silkyroad.developpez.com/VBA/...nesCaracteres/


    sinon voici un bout de code
    ligne contient la chaine de caractère
    il vérifie que tout les caractères sont bien des chiffre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i = 1 To Len(ligne)
        If Mid(ligne, i, 1) Like "[!0-9]" Then
            msgbox("Saisie non conforme")
            exit sub
        End If
    Next i
    Si tu veux une condition sur la taille test len(ligne)
    Bonjour merci bien d'avoir regarder je m'occuppe de ca dans la foulée
    @+

    Citation Envoyé par casefayere Voir le message
    j'ai regardé ton code et changer le numéro d'erreur par un message et comme ça ca marche pour les espaces

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = 1 To Len(Target)
    z = Mid(.Value, i, 1)
    If InStr("0123456789", z) = 0 Or .Value = " " Then MsgBox "non": Exit For
    Next i
    Re salut

    Ca fonctionne mais pas tout a fait comme je souhaitai, en fait si

    (1) j'entre une lettre je valide ENTER ok ca passe PAS et le curseur reste dans la cellule
    (2) si je rappuie sur ENTER une deuxieme fois, La ca passe malgré que la cellule soit VIDE, ne devrais pas puisque cellule egal rien ???

    c'est toujours le meme fichier poster tout a l'heure
    si tu veux SVP bien regarder si tu as le temps, ca serai sympa
    PS: faut 'il utiliser absolument
    Private Sub Worksheet_SelectionChange(ByVal Target As Range) ou
    Private Sub Worksheet_Change(ByVal Target As Range)

    merci te dit a plus tard

    Raymond

  9. #9
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Citation Envoyé par casefayere Voir le message
    si ça t'aide, enleve aussi les espaces :
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'exemple pour a1
    If Len(Range("a1")) < 1 Then
    MsgBox "saisissez queleque chose"
    End If
    Range("a1") = Application.WorksheetFunction.Substitute(Range("a1"), " ", "")
    End Sub
    re attends j'avais pas vu trop rapide hihihi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/06/2014, 15h18
  2. [SQL] Compteur de saisies dans des champs d'une BDD
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 28/02/2007, 13h54
  3. Réponses: 9
    Dernier message: 05/02/2007, 12h27
  4. brider une saisie dans le champ d'un formualire
    Par zeloutre dans le forum Access
    Réponses: 5
    Dernier message: 19/10/2006, 15h13
  5. Modification d'une combo suite à la saisi dans un champ texte
    Par GabriHell dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/05/2006, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo