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 :

Cadrer (Min-Max) une entrée TextBox + Vérifier son existance


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Par défaut Cadrer (Min-Max) une entrée TextBox + Vérifier son existance
    Me revoilà!

    Le challenge ce coup-ci consiste à définir un nombre min et max de "digits" pour une entrée de TextBox (ce nombre doit faire 8 en fait).

    J'aimerai aussi m'assurer au moment de la saisie que ce nombre n'existe pas déjà dans la colonne ou il sera stocké.

    Côté validation sous excel j'ai une petite idée mais pas sûr que ce soit transférable sous VBA?

    Quelqu'un a-t-il déjà eu affaire à ce genre de problème?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut Mas_Carpone et le forum
    Le challenge ce coup-ci consiste à définir un nombre min et max de "digits" pour une entrée de TextBox (ce nombre doit faire 8 en fait).
    Essaies avec Len(). Ou expliques le problème comme si on ne connaissait rien de ce que tu veux faire.
    J'aimerai aussi m'assurer au moment de la saisie que ce nombre n'existe pas déjà dans la colonne ou il sera stocké.
    Pense à transformer le texte en nombre (Clong(), Cdble() ou autre) et recherche avec .Find()

    Rappel : on ne sait que ce que nous donne les postes. Plus la question est moins précise, moins on peut plus t'aider.
    A+

  3. #3
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Par défaut
    Merci Gorfael!

    L'utilisateur doit rentrer un code (d'établissement) dans un Textbox.

    Ce code comporte obligatoirement 8 caractères. Donc je crois que Len() devrait fonctionner, avec quelque chose du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Len(TextBox_MDCode.Value) <> 8 Then
    Mess = "Le CODE doit comporter 8 caractères"
    Else
    End If
    En ajoutant un message "d'erreur" pour signaler le problème à l'utilisateur.

    La deuxième vérification que j'aimerai effectuer est la présence de cette valeur (de l'établissement donc) dans la base de données. Si la valeur est présente, soit l'utilisateur s'est trompé de code, soit il devra trouver et éditer les données déjà existantes de cet établissement.

    Je suis en train d'éplucher le fonctionnement de .Find qui a première vue à l'air tout à fait adapté!

    Merci pour ces premiers éléments en espérant avoir été plus clair! :-)

  4. #4
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour Mas_Carpone Gorfael le forum un exemple avec un bouton dans ton user recherche sur la colonne A adapte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CommandButton1_Click()
      Dim c As Variant
       If Len(TextBox_MDCode) <> 8 Then
         MsgBox "attention 8 caracteres mini"
         TextBox_MDCode.SetFocus
         Exit Sub
      End If
     Set c = Range("a1", Cells(Rows.Count, "a").End(xlUp)).Find(TextBox_MDCode, LookIn:=xlValues, LookAt:=xlWhole)
      If Not c Is Nothing Then
       MsgBox "present dans la liste" 'ton code
       Else
      MsgBox "pas present dans la liste" 'ton code
      End If
    End Sub
    dans proprietees de ta textbox MaxLength a 8 "caracteres maxi" evite deja de taper trop de caracteres

    facultatif cidessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub TextBox_MDCode_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
        'force a taper que des chiffres utile si ton code comporte que des chiffres autrement supprimer
        If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0
    End Sub

  5. #5
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Par défaut
    L, A, E dans l'A, TI, TI A!

    Ça marche nickel! Un grand merci à tous les deux pour votre aide!

  6. #6
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Par défaut
    Je me permet de re-upper pour complément d'information / aide.

    J'ai parfois plusieurs milliers d'entrées dans la base et j'aimerai, si la valeur existe déjà dans la base l'indiquer à mon utilisateur.

    Comment puis-je capturer le nombre de la ligne à laquelle la valeur a été rencontrée par .find pour le réutiliser plus tard?

Discussions similaires

  1. supprimer une fonction en vérifiant son existance
    Par aze555666 dans le forum PL/SQL
    Réponses: 1
    Dernier message: 09/04/2010, 20h06
  2. Réponses: 9
    Dernier message: 15/05/2009, 17h33
  3. chercher un max et min dans une liste de type vector
    Par sandy07 dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 29/05/2007, 15h23
  4. Réponses: 2
    Dernier message: 21/05/2007, 18h55
  5. [C++.NET] Valeurs min/max dans une TextBox
    Par raboin dans le forum VC++ .NET
    Réponses: 4
    Dernier message: 06/04/2006, 17h15

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