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 :

SetFocus d'une checkbox - visuel différent de l'utilisation de TAB [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Points : 5
    Points
    5
    Par défaut SetFocus d'une checkbox - visuel différent de l'utilisation de TAB
    Bonjour,

    Après plusieurs recherches infructueuses sur le forum et mon ami google, je me résout enfin à poser ma première question en deux années de programmation VBA

    J'ai une macro qui me fait afficher un userform non modal, lequel comporte une checkbox et d'autres InputBox.
    La checkbox est en première dans l'ordre des tabulations. Je confirme qu'elle est la première par un SetFocus dans la section Userform.Initialize()


    Lorsque je lance ma macro, la checkbox est effectivement sélectionnée, cependant son texte n'est pas encadré en pointillé comme si on utilisait la commande "TAB" du clavier.
    Est-il possible de faire en sorte que cette checkbox soit encadrée au démarrage ? (de sorte à ce que l'utilisateur ait le focus visuel dessus et se dise - ah oui tient si je tape "Enter" au clavier ça va l'activer -)

    Nom : checkbox non-encadree.PNG
Affichages : 251
Taille : 9,3 KoNom : checkbox encadree.PNG
Affichages : 251
Taille : 10,4 Ko

    Merci d'avance pour vos idées !


    NB : je préfère ne pas utiliser de SendKeys {TAB} pour éviter d'autres désagréments du genre désactivation du pavé numérique ou autre...

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    l'évènement Initialize intervient en tout premier lieu (alors que les éléments graphiques ne sont pas encore forcément TOUS gérés).
    Utilise l'évènement Activate
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonjour unparia,

    J'avais trouvé une discussion sur le forum (de toi déja il me semble ; ) sur cette différence entre le Initialize() et le activate() mais aucune des deux solutions ne semble vouloir activer la checkbox avec les "pointillés"

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Etrange
    Je viens (par pure curiosité) de tester ceci sur ma machine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Activate()
      CheckBox1.SetFocus
    End Sub
    Et j'ai mes "pointillés".
    Y compris si pas le 1er tabindex !
    C'est peut-être ta version Office (2016) ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    J'ai beau tester et retester -->> pas de problème chez moi ...
    Ce doit être dû à ta version ffice.
    Choisis pour voir un évènement ultérieur à Activate -->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Layout()
      CheckBox1.SetFocus
    End Sub
    Et fais-moi savoir (tout cela est étrange).
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Ah, çà, alors !!!...
    Le phénomène est en effet présent si le userform n'est pas modal !

    Zut, alors !

    J'ai alors installé la parade suivante (du bricolage pour "rattraper") :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub UserForm_Activate()
      CheckBox1.SetFocus
      CheckBox1.Value = Not CheckBox1.Value
      CheckBox1.Value = Not CheckBox1.Value
    End Sub
    Marche chez toi également ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour
    ca doit etre du a la version de excel car chez moi meme sans code dans le userform (modal ou pas) si le checkbox est le premier control il prends le focus (testé)
    et j'ai bien le checkbox encadré de pointillets (je le repete meme sans code!!!)
    pour info j'utilise 2007 pro plus
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Je viens de tester sur un petit bout de code différent de ma macro principale et il semble que tu aies raison, le setFocus fonctionne avec affichage du cadre pointillé, fenêtre modale ou pas !

    Devant cette démonstration absolue je suis allé chercher d'autres erreurs de mon code et j'ai trouvé une redondance qui était à l'origine du problème.

    En fait j'avais dans un module l'appel de la userForm non-modale, "dataInputs.show 0" , mais dans le UserForm_Initialize() j'avais de nouveau un "Me.show"
    Et clairement le setFocus n'a pas aimé la confirmation d'affichage...

    Merci à vous deux !

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

Discussions similaires

  1. [FLASH MX] Police d'une Checkbox
    Par n_tony dans le forum Flash
    Réponses: 5
    Dernier message: 08/12/2004, 12h04
  2. Boutons Radios qui charge une page php différente
    Par nebule dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/11/2004, 15h25
  3. Etat coché ou décoché d'une checkbox
    Par El Saigneur dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/10/2004, 16h56
  4. [XML][XSL]afficher une checkbox cochée
    Par kirk80 dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/09/2004, 17h49
  5. [struts] mémorisation d'une checkbox avec cookie
    Par rocco dans le forum Struts 1
    Réponses: 3
    Dernier message: 22/04/2004, 12h39

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