Partager via

Perte de focus aprés cancel = true

Anonyme
2025-04-20T09:15:49+00:00

Bonjour,

Dans Excel, si un formulaire est en mode non modal, cancel = true ne fonctionne pas correctement avec les commandes exit ou beforeupdate. Le focus disparait et il faut cliquer dans le textbox pour qu'il apparaisse, même si on précise textbox.setfocus

Windows 11

Office 365

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

3 réponses

  1. Anonyme
    2025-04-23T14:26:55+00:00

    Cette réponse a été automatiquement traduite. Par conséquent, il peut y avoir des erreurs grammaticales ou des formulations étranges.

    Salut

    Merci d’avoir répondu. Donc, puisqu’il s’agit d’une fonction avancée dans Excel, il serait préférable que vous atteigniez la communauté technique pour Excel. Voici le lien : Excel | Hub de la communauté Microsoft

    J’espère que cela vous aidera.

    Sinceres salutations

    Clifford B.

    Modérateur de la communauté Microsoft

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2025-04-23T08:49:57+00:00

    Bonjour,

    Merci pour ces réponses.

    Sur le point 1, oui cela fonctionne si le formulaire est modal, cependant j'ai besoin que certains formulaires soient en non modal, et c'est bien en non modal que le problème se pose

    Sur le point 2, même si je ne mets que cancel = true, sans aucune autre consigne, cela ne fonctionne pas.

    Sur le point 3, j'ai testé le timing, cela n'a rien changé

    Sur le point 4 , malheureusement, mon niveau n'est pas suffisant pour traiter les API

    Sur le point 5, j'ai fait une extraction de fichier pour ne garder que ce qui concerne le problème. Cela n'a rien changé

    Sur le point 6, les mises à jour sont ok, et j'ai également tenté une réinstallation.

    Autres solutions tentées :

    déplacer le focus sur un autre contrôle et revenir ensuite sur le textbox concerné: cela fonctionne de manière aléatoire

    sollicité quelques forums excel: aucune solution trouvée

    sollicité microsoft, une intervention en ligne n'a permis que de constater le problème, mais pas de solution fournie. L'agent m'a simplement orienté sur ce forum.

    C'est un bug, a priori simple, mais qui semble ne trouver aucune solution. C'est pénible et çà nuit au fonctionnement des formulaires.

    Je reste dans l'attente d'une solution

    Merci à tous

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2025-04-22T14:59:32+00:00

    Cette réponse a été automatiquement traduite. Par conséquent, il peut y avoir des erreurs grammaticales ou des formulations étranges.

    Bonjour

    Bienvenue sur le forum de la communauté Microsoft. Veuillez accepter nos salutations les plus chaleureuses et notre espoir le plus sincère que tout va bien malgré la situation dans laquelle vous vous trouvez.

    Il semble que vous rencontriez un problème pour maintenir le focus dans un formulaire dans Excel lorsqu’il est en mode non modal. Voici quelques suggestions pour résoudre ce problème :

    1. Utiliser un formulaire modal à la place : le passage du formulaire en mode modal peut résoudre le problème, car les formulaires modaux ont tendance à gérer les transitions de focus de manière plus fiable.
    2. Vérifier les gestionnaires d’événements : vérifiez la logique dans vos BeforeUpdate gestionnaires d’événements et Exit pour vous assurer qu’aucune action involontaire ne modifie le focus. Si vous définissez Cancel = True, le focus doit rester sur le même contrôle, mais d’autres facteurs (comme un événement de perte de focus) peuvent perturber ce comportement.
    3. Test .SetFocus Timing : Parfois, .SetFocus doit être appelé après un léger retard pour s’assurer qu’il est correctement appliqué. Envisagez d’utiliser Application.OnTime pour appeler .SetFocus après un petit intervalle.
    4. Forcer la concentration avec les appels d’API : s’il .SetFocus n’est pas fiable, vous pouvez explorer l’utilisation des appels d’API Windows pour appliquer le focus sur le contrôle souhaité. Cependant, cette approche nécessite un code VBA et une manipulation soigneuse.
    5. Vérifier les interférences : assurez-vous qu’il n’y a pas d’autres processus, compléments ou macros qui interfèrent avec le comportement du formulaire.
    6. Mettre à jour Office : puisque vous utilisez Office 365, assurez-vous que les dernières mises à jour sont installées. Les mises à jour résolvent souvent des bogues comme celui-ci.

    Si aucune de ces solutions ne vous aide, le problème peut être spécifique à votre environnement (Windows 11 et Office 365). Envisagez de contacter le support Microsoft ou les forums de la communauté Excel, ils ont souvent des informations sur des bizarreries spécifiques comme celle-ci.

    J’espère que cela vous aidera.

    Sinceres salutations

    Clifford B.

    Modérateur de la communauté Microsoft

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire