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 :

Textbox afterupdate


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Par défaut Textbox afterupdate
    Bonjour,

    j'ai deux Textbox successifs qui indiquent les bornes Min(Textbox1) et Max(Textbox2).
    je veux que lorsque la borne Min est vide ou lorsque par erreur la borne Min est sup au borne Max il y'aura un message box qui s'affiche (Borne Min> Borne Max) et le setfocus se positionne de nouveau sur la borne Min (Textbox1).

    Merci de m'indiquer ou mettre le code (dans le before ou afterupdate)

    Merci pour votre aide.

  2. #2
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour

    Le plus simple est comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
    If TextBox2 <> "" And (TextBox1 = "" Or TextBox1 > TextBox2) Then
      MsgBox "Allo"
      TextBox1.SelStart = 0
      TextBox1.SelLength = Len(TextBox1.Text)
     
      TextBox1.SetFocus
      Application.OnTime Now + TimeValue("00:00:01"), "SetFocusSurTextbox1"
     End If
    End Sub
    Dans un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub SetFocusSurTextbox1()
     UserForm1.TextBox1.SetFocus
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Par défaut
    bonjour,

    Merci pour votre réponse .
    Est que ya t-il un moyen pour utiliser le after update mieux qu'utiliser un commandbutton ?
    Merci.

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Dans l'aide de VBA, ils disent que l'événement AfterUpdate est généré à chaque modification du contenu. Donc quand tu vas écrire anticonstitutionnellement dans ton contrôle tu vas générer 25 événements AfterUpdate plus tous ceux que tu vas générer en te trompant de lettre.

    Comment veux-tu que ton textbox "sache" que ton nombre au complet va avoir 1, 10, 3, ou 5 caractères ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Par défaut
    Bonjour,

    je suis débutant en vba et j'ai cru que l'after update peut verifier automatiquement le montant de la borne inf et indique selon la borne max s'il y'a un dépassement ou pas.

  6. #6
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    C'est plutôt le BeforeUpdate que tu cherches, car avec le AfterUpdate il est trop tard car le curseur est déjà rendu ailleurs.
    Utilise donc BeforeUpdate et Cancel.
    Mais le Update pose un problème : c'est qu'il faut qu'il y ait au moins une modification faite dans le Texbox1, sinon l'événement Update (Before ou After) ne se déclenchera pas.
    Personnellement, je n'ai jamais utilisé les événements Update.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
     TextBox1.Value = Trim(TextBox1.Value)
     If TextBox2 <> "" And (TextBox1 = "" Or TextBox1 > TextBox2) Then
       MsgBox "Allo"
       Cancel = True
     End If
    End Sub
    Tu serais mieux avec l'événement Exit du Textbox avec le code de mon premier message. Car il se déclenche même s'il n'y a pas eu de modification de la valeur.

  7. #7
    Membre confirmé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Par défaut
    Merci beaucoup Mr Docmarti pour votre aide et votre suivi quotidien.

    A très bientôt.

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

Discussions similaires

  1. [XL-2003] Ramener le focus sur textbox avec afterupdate
    Par mlrdeni dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/08/2012, 10h15
  2. [VB.NET] Sauvegarde dans TextBox des logons utilisés
    Par stephane93fr dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/10/2005, 11h00
  3. Réponses: 2
    Dernier message: 08/04/2004, 11h11
  4. Réponses: 3
    Dernier message: 25/03/2004, 11h35
  5. [VB6] [Interface] ScrolBar & TextBox
    Par DarkVader dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/10/2002, 18h40

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