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 :

Controle.setfocus ne marche pas [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club Avatar de ptissendier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 64
    Points : 53
    Points
    53
    Par défaut Controle.setfocus ne marche pas
    Bonjour à tous,
    Ça fait trois jours que je cherche sur tous les forums, mais je n'arrive pas à trouver une solution.
    Voici mon problème.
    J'ai construit un userform avec des textbox.
    Dans la procedure userform_Initialize j'ai écris :
    (ça ne marche pas, TextBox1 est bien Enabled.) une fois l'usf affiché, il faut que je clique sur le controle pour activer le curseur.
    Pour controler mon TextBox dans la procedure Exit (ou BeforeUpdate) de TextBox1 j'ai écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cancel=MonTest(ActiveControl)
    Dans la fonction MonTest j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function MonTest(d as Control) as Booleen
            if d <> "toto" then
               MsgBox ("vous devez saisir 'toto' ")
               d.SetFocus
               Montest=True
            end if
    end function
    Eh bien après la msgbox je suis bien dans la textbox1 mais je n'ai pas de curseur, ni de données sélectionnée, il faut que je clique sur le controle pour activer le curseur et la sélection de texte erroné.
    Merci de votre lecture et éventuellement de votre solution.
    Ubuntu 22.04.1 LTS
    LibreOffice 7.4.3

  2. #2
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Peu de choses à redire, à part
    Me!TextBox1.SetFocus au lieu de Me.TextBox1.SetFocus
    et Booleen au lieu de Boolean.
    Voir classeur test.

    Cordialement.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre du Club Avatar de ptissendier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 64
    Points : 53
    Points
    53
    Par défaut
    Merci gFZT82,
    En réalité l'usf est un peu plus "complexe". Je le poste en fichier attaché.
    Je ne comprend pas pourquoi le setfocus ne marche pas.
    Même à l'ouverture du usf.
    Merci pour votre avis, si ce n'est pas trop demander
    Cordialement.
    Ubuntu 22.04.1 LTS
    LibreOffice 7.4.3

  4. #4
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    C'est lié à l'affichage non modal de l'USF.
    Voir exemple.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre du Club Avatar de ptissendier
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 64
    Points : 53
    Points
    53
    Par défaut
    Merci, merci
    Je venais juste de trouver avant de lire votre réponse et j'allais mettre le fil à résolu .
    Je vous suis vraiment très reconnaissant d'avoir pris le temps de regarder mon code .
    Mais d'après vous est-ce un bug ou une réaction normale ?

    Encore merci.
    Ubuntu 22.04.1 LTS
    LibreOffice 7.4.3

  6. #6
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Mais d'après vous est-ce un bug ou une réaction normale ?
    Je vais éviter de m’aventurer dans une explication car les essais que j’ai effectués sur ton fichier ne m’ont pas permis de tout comprendre.
    Au départ, je pensais qu’il s’agissait simplement d’un problème de zone active (le mode non modal permettant de naviguer entre les feuilles et l’USF).
    En supprimant l’activation des feuilles "Listes" et "ODM" réalisées dans la procédure UserForm_Initialize() ainsi que le setfocus de la procédure UserForm_Activate(), j’ai obtenu le résultat attendu à savoir le focus sur la TextBox correspondant au numéro de mission. Je n’ai d’ailleurs pas eu besoin de forcer le focus sur cette TextBox car elle est en 1ere position dans l’ordre de tabulation.
    Mais ... , si par programme je demande à placer le focus sur une autre TextBox, j’observe que le curseur est invisible alors que le focus s’est bien déplacé (un test avec la tabulation montre que le focus est bien positionné). Et à partir de là, je suis sec. ..
    Pour ton problème, la question se résume donc à savoir si tu as besoin d’un affichage non modal ou pas.

    Cordialement.

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

Discussions similaires

  1. Controls.Find("ToolStripMenuItem1") MARCHE PAS ?
    Par bilal.sdi dans le forum VB.NET
    Réponses: 6
    Dernier message: 09/08/2011, 16h34
  2. Controle remplissage des champs qui ne marche pas
    Par adrien555 dans le forum Dreamweaver
    Réponses: 0
    Dernier message: 21/07/2008, 14h27
  3. [VBA]suppression de controle ne marche pas
    Par celiaaa dans le forum VBA Access
    Réponses: 2
    Dernier message: 03/04/2007, 15h05
  4. [VB.NET]Control.CreateControl qui ne marche pas
    Par noogatix dans le forum Windows Forms
    Réponses: 13
    Dernier message: 16/06/2006, 16h23

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