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 :

Contrôle de saisie sur textbox dynamique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 12
    Par défaut Contrôle de saisie sur textbox dynamique
    Bonjour a tous,

    Alors voila, J'ai un Userform avec plusieurs textbox, combobox ,etc .. Sur les éléments fixe ou de "base" un key_press est appliquer donc aucun soucis.
    Maintenant voila mon problème, l'utilisateur peut créer plusieurs textbox en fonction des choix mais la saisie a l’intérieur doit être contrôler tout de même. Donc je peux tout de meme vérifier pour une date ( IsDate()) ou un chiffre ( IsNumeric()) mais je ne trouve rien comme méthode pour vérifier si c'est bien du texte et seulement du texte.
    Si vous pouviez me guider sur des méthodes, fonction ou autre.

    De plus, je voudrais savoir si on peut appliquer une Key_press surement un textbox que l'on crée pendant l’exécution de programme.

    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 66
    Par défaut
    Bonjour,

    Citation Envoyé par maxence57590 Voir le message
    Bonjour a tous,
    mais je ne trouve rien comme méthode pour vérifier si c'est bien du texte et seulement du texte.
    Par "texte" tu entends un string ou du texte sans valeurs numériques, caractères spéciaux ? Car par défaut une textbox renvoie un string.
    Sinon il exite une fonction IsText mais je ne l'ai jamais utilisée
    https://msdn.microsoft.com/en-us/lib...on.istext.aspx
    Tu peux aussi faire Not IsNumeric si tu ne veux pas de chiffre.

    Citation Envoyé par maxence57590 Voir le message
    De plus, je voudrais savoir si on peut appliquer une Key_press surement un textbox que l'on crée pendant l’exécution de programme.
    Oui, a priori pas de problème j'avais utilisé le même principe sur l’événement _Click avec des boutons créées dynamiquement

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    Je te suggère de commencer par t'intéresser à ce qu'est un module de classe (il te sera utile) -->>

    http://fauconnier.developpez.com/art...neral/classes/

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 12
    Par défaut
    Par "texte" tu entends un string ou du texte sans valeurs numériques, caractères spéciaux ? Car par défaut une textbox renvoie un string.
    Alors j'aurai justement besoin de certains caractères spéciaux ( ' " é à )

    Sinon il exite une fonction IsText mais je ne l'ai jamais utilisée .
    Je ne l'avais pas trouver, je vais regarder si elle prend seulement l'alphabet "classique" en compte.

    Tu peux aussi faire Not IsNumeric si tu ne veux pas de chiffre.
    Mais je ne pourrai traiter les "@" par exemple.

    Donc je regard la fonction InStr() actuellement.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 66
    Par défaut
    Si tu as besoin d'un contrôle de saisie très spécifique tu peux utiliser les expression rationnelles (Regex). C'est un peu fastidieux mais très puissant

    http://cafeine.developpez.com/access/tutoriel/regexp/

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 12
    Par défaut
    Si tu as besoin d'un contrôle de saisie très spécifique tu peux utiliser les expression régulières (Regex). C'est un peu fastidieux mais très puissant
    Je ne pense pas avoir le niveau actuel après je n'ai que survoler la page mais assez compliqué je trouve


    J'ai réaliser un petit code (facile mais relativement efficace), bon c'est n'est pas du grand art mais je pense qu'il devrait faire l'affaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Private Sub CommandButton8_Click()
    Dim test As String
    Dim taille_chaine As Integer
     
    test = "m5 f556e"
    taille_chaine = Len(test)
     
    Dim MidWords As String
    For I = 1 To taille_chaine
    MidWords = Mid(test, I, 1)
     
     If InStr(" azertyuiopqsdfghjklmwxcvbn'A ZERTYUIOPQSDFGHJKLMWNXBCVéàè ", MidWords) = 0 Then
     
        MsgBox "error"
        Else
          MsgBox "Caractere ok"
     End If
     
    Next I
     
    End Sub

    Merci pour vos réponses, si vous pouvez éventuellement me donner votre avis sur ce code rapide

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

Discussions similaires

  1. contrôle saisie sur textbox
    Par mehdi.cheddani dans le forum VB.NET
    Réponses: 4
    Dernier message: 01/04/2013, 13h19
  2. contrôle de saisie sur DBgrid
    Par jenteldz47 dans le forum Bases de données
    Réponses: 9
    Dernier message: 27/05/2007, 08h00
  3. Contrôle de saisie sur une perte de focus d'une JTextfield
    Par comeochris dans le forum Composants
    Réponses: 3
    Dernier message: 03/04/2006, 15h21
  4. contrôle de saisie sur un espace
    Par oceane751 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/01/2006, 12h04

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