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 :

Gestion de la superposition de UserForms


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de m@tix
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 304
    Par défaut Gestion de la superposition de UserForms
    Bonsoir,

    Selon le lieu où je travaille, j'utilise une version différente d'Excel. D'une part, Excel 2010, et d'autre part, Excel 2007.

    J'ai mis en place des macros qui font intervenir plusieurs UserForms afin d’interagir avec l'utilisateur. Notamment, une Userform va en appeler d'autres si on clique sur certains boutons.

    Mon problème est le suivant : à chaque apparition d'une nouvelle UserForm, je souhaite que la précédente s'efface, sans pour autant être "déchargée". Pour ce faire, j'ai simplement utilisé l'instruction .Hide au lieu de Unload.
    Sur Excel 2010, aucun souci, je parviens précisément à ce que je souhaite. En revanche, sous la version 2007 du tableur, avec le même code, les fenêtres se succèdent une à une, se superposant à l'écran (et lorsqu'on a des liste déroulantes, celles-ci restent en général déroulées), et ne s'effacent que lorsqu'on décharge le UserForm principal.

    Voyez-vous d'où peut venir cela, et surtout, comme le résoudre ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, voir aide en ligne [F1] sur vbModeless pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserFormX.Show vbModeless
    par défaut les UserForms sont VbModal

    Tuto à lire.

  3. #3
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    je ne pense pas que le fait que l'USF soit modal ou non soit en cause, le fait qu'il soit non modal peut par contre présenter des dangers...

    J'ai des applis qui tournent indifféremment sous 2007-2010 avec des cache-cache d'USF en pile sans souci.

    @ m@tix tu devrais faire un code tout simple avec juste quelques uns de tes USF et tester sous les 2 versions, si ça perdure, met le fichier en PJ

    Si le fichier test mini est OK, c'est uqe tu as un autre paramètre dans ton code complet qui met le zinzin..

    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

  4. #4
    Membre éclairé Avatar de m@tix
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 304
    Par défaut
    Bonjour,

    Merci pour vos réponses. Comme le suggère Ormonth, le problème ne vient pas du fait que le UserForm soit modal ou non. J'ai également testé de faire faire un fichier simple avec plusieurs UserForms, et en effet tout fonctionne bien. Le problème vient donc de mon code. D'où cela pourrait-il venir ?

    Détail important : lorsque j'exécute le code en pas à pas, tout fonctionne normalement... !

    Autre symptôme : lorsque je déplace les UserForms, celles-ci "restent" afficher sur l'écran, elles ne se déplacent pas mais se "copient" !

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut heu!...
    bonjour

    non tes userforms ne se copie pas mais la mémoire utilisées dans ton code est excessive donc le graphisme réagit en retard

    regarde si tu n'a pas une boucle qui perdure même après la fin dans ton code

    et dans le pire des cas met des tas de "doevents" dans tes boucles suspectes juste pour voir si ça peut pas permettre au userforms de se replacer graphique ment lors de leur déplacements


    au plaisir
    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

  6. #6
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, et pourtant sous Excel 2007 SP3 le fait de mettre les UserForms en vbModeless résoud le problème alors qu'en vbModal les Userforms s'empilent ...

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 20/05/2012, 16h55
  2. [XL-2007] Fichier de gestion Excel VBA - Userform
    Par Hilsen dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/07/2010, 10h24
  3. Gestion des évènements avec une superposition d'éléments
    Par Meardon dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/10/2008, 14h47
  4. Gestion d'évènement pour un Userform dynamique
    Par RemiT dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 18/12/2007, 15h34
  5. c# gestion de la superposition des rectangles
    Par TERRIBLE dans le forum C#
    Réponses: 1
    Dernier message: 27/08/2007, 21h36

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