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 :

[VBA-E] Conserver le curseur dans boîte de texte


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Par défaut [VBA-E] Conserver le curseur dans boîte de texte
    J'ai un formulaire qui contient une boîte de texte. Une validation vérifie que la donnée entrée est une valeur numérique. Sinon, un Msgbox apparaît et demande de recommencer l'entrée avec une valeur numérique.

    Le problème est que lorsque j'appuie sur le OK de ce Msgbox, la boîte de texte ne possède plus le curseur et rien ne se produit si j'appuie sur les touches du clavier....

    Je dois obligatoirement cliquer dans la boîte de texte avec la souris afin de replacer le cuseur. Je voudrais que le curseur demeure ou réapparaisse automatiquement dans la boîte de texte...J'ai essayé "setfocus" comme ci-dessous, sans succès...

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If not isnumeric(Userform1.Textbox2.value) then
    Msgbox " Entrer une valeur numérique"
    Textbox2.setfocus
    Merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Dans quel événement places-tu ce code ?

  3. #3
    Membre éprouvé Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Par défaut
    Hello,
    J'ai eu ce problème ce matin, voilà mon code
    Dans ce cas, ça vérifie que la valeur textbox est une date, et si oui, ça la convertit au format que je veux, sinon msgbox et retour dans la textbox

    En fait le tout est d'utiliser l'évènement Exit(ByVal Cancel As MSForms.ReturnBoolean) et de régler cancel=true après ta msgbox, comme ça le curseur revient dedans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub DatDeb_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If IsDate(DatDeb) = True Then
        DatDeb = Format(DatDeb, "dd/mm/yyyy")
    ElseIf DatDeb <> "" Then
        MsgBox "Date incorrecte, veuillez réessayer"
        Cancel = True
    End If
    End Sub

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut

    Ok cwain, mais si tu veux quitter ta textbox sans saisir que se passe-t-il ?

    Starec

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Par défaut
    Salut,

    J'ai essayé et le curseur ne réapparaît pas dans la boîte de texte lorsque l'on frappe OK dans le MsgBox. Je ne peux pas quitter la boîte mais on dirait que la boîte à perdu le focus...Peu importe quelles touches je frappe, rien ne se passe.

    J'aimerais utiliser "before update" afin de valider l'entrée de chaque boîte individuellement....

  6. #6
    Membre éprouvé Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Par défaut
    Ok cwain, mais si tu veux quitter ta textbox sans saisir que se passe-t-il ?
    Ce cas est envisagé sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ElseIf DatDeb <> "" Then
    comm ça si la valeur de DatDeb est vide il ne se passe rien.

    J'ai essayé et le curseur ne réapparaît pas dans la boîte de texte lorsque l'on frappe OK dans le MsgBox. Je ne peux pas quitter la boîte mais on dirait que la boîte à perdu le focus...Peu importe quelles touches je frappe, rien ne se passe.
    Je comprends pas, j'ai réessayé chez moi ça marche bien. J'ai peut-être pas précisé que DatDeb était le nom de ma textbox. Le code est associé à cette textbox. Tu as pu t'en sortir depuis ?

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

Discussions similaires

  1. [VBA-E]Ecriture de données dans un fichier texte
    Par osito57 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 18/08/2017, 19h42
  2. Débutant:Curseur dans zone de Texte
    Par DuDe92 dans le forum IHM
    Réponses: 7
    Dernier message: 05/01/2007, 17h04
  3. [VBA-A]Remplacer les espaces dans un champ texte
    Par Ericka dans le forum VBA Access
    Réponses: 6
    Dernier message: 17/05/2006, 15h31
  4. [VB6] position du curseur dans une zone texte et insertion caractere
    Par tim69000 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/05/2006, 09h52
  5. Probleme d'affichage du curseur dans un chp texte avec firef
    Par dadovb dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/10/2005, 12h31

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