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 :

Sélection dans une TextBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Oh!Tofocus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 217
    Par défaut Sélection dans une TextBox
    Bonjour
    j'ai un Userform avec une TextBox1 avec une valeur : chaine de caractères

    Je voudrais pouvoir par macro selectionner cette valeur
    avec TextBox1.SetFocus, le curseur se positionne en fin de chaine de carractère mais ne sélectionne pas la valeur ( en bleu foncé )...
    Comment faire ?

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Regarde l'aide sur SelStart et SelLength
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Membre confirmé Avatar de Oh!Tofocus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 217
    Par défaut
    Merci de ton aide AlainTech
    mais je n'arrive toujours pas à résoudre mon problème :

    je me suis peut être mal expliqué.

    j'ai une TextBox1 ou je rentre une valeur
    quand j'appuie sur enter une macro démarre
    si la valeur entrée n'est pas la valeur que j'attends
    je voudrais que la valeur à l'intérieur de la TextBox1 soit présélectionnée ( avec le fond bleu) pour pouvoir être encore visible mais disparaitre dés que l'on entre un nouveau caractère.

    est-ce plus clair

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    La réponse que tu as reçue d'AlainTech me parait claire et suffisante.

    Je la complète simplement par cette précision : si ta textbox n'a plus le focus, il faut le lui donner (setFocus) après cette manipulation par selstart et SelLength si tu veux à la fois voir ton texte en surbrillance et y retourner (autrement donc que par un clic qui ferait perdre la sélection).
    C'est donc dans ta procédure appelée que tu dois (uniquement si la vérifdication conduit à la découverte de cette nécessité) :
    - mettre ton selstart à 0
    - mettre ton SelLength à la longueur du texte présent dans la textbox
    - donner le focus à la textbox

  5. #5
    Membre confirmé Avatar de Oh!Tofocus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 217
    Par défaut
    Merci ucefoutu pour tes explications.
    Mais je n'arrive pas exactement à ce que je veux:
    mon code marche que si la routine est demarrée par un click bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CommandButton1_Click()
     
    If TextBox1.Value <> "aaa" Then
        TextBox1.SelStart = 0
        TextBox1.SelLength = Len(TextBox1.Value)
        TextBox1.SetFocus
    Else
        MsgBox ("code bon")
    End If
     
    End Sub
    et ne marche pas si je l'associe à la validation de la TextBox1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub TextBox1_exit(ByVal Cancel As MSForms.ReturnBoolean)
     
    If TextBox1.Value <> "aaa" Then
        TextBox1.SelStart = 0
        TextBox1.SelLength = Len(TextBox1.Value)
        TextBox1.SetFocus
    Else
        MsgBox ("code bon")
     
    End If
     
    End Sub

  6. #6
    Membre confirmé Avatar de Oh!Tofocus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 217
    Par défaut
    Remoi
    Vraiment je perds la mémoire
    en combinant les réponses ( AlainTech & ucfoutu ) de ce post et une solution de pgz d'un post debut décembre http://www.developpez.net/forums/d65...e/#post3857502
    j'ai résolu mon problème
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Dim bChange As Boolean
     
     
    Private Sub CommandButton1_Click()
    MsgBox "coucou"
    End Sub
     
    Private Sub TextBox1_Change()
    bChange = True
    End Sub
     
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If bChange Then
    If TextBox1.Value <> "aaa" Then
    MsgBox ("non trouve")
        TextBox1.SelStart = 0
        TextBox1.SelLength = Len(TextBox1.Value)
        Cancel = True
        bChange = False
    Else
    MsgBox ("trouvé")
    End If
     
     
    End If
    End Sub
     
    Private Sub UserForm_Initialize()
     
    bChange = False
    TextBox1.SetFocus
    End Sub
    la saisie est possible et les boutons sont accessibles pendant la saisie
    merci a tous

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

Discussions similaires

  1. [XL-2003] sélection d'infos dans une Textbox
    Par Serinus dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/11/2011, 18h51
  2. Réponses: 4
    Dernier message: 10/10/2010, 23h21
  3. [c#]Gros text à afficher dans une textbox
    Par famemaur dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/05/2005, 10h12
  4. Sélection dans une ListBox
    Par LoicH dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/04/2005, 22h13
  5. [JTable] couleur de sélection dans une JTable
    Par spoutyoyo dans le forum Composants
    Réponses: 7
    Dernier message: 06/12/2004, 11h43

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