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 :

Suivre le cheminement d'un userform actif en non modal [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    ingenieur du son
    Inscrit en
    Avril 2017
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingenieur du son
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2017
    Messages : 212
    Par défaut Suivre le cheminement d'un userform actif en non modal
    Bonjour (re...) à toutes et tous.

    J'ai un soucis de textbox qui reprend une valeur initiale en sortie de procédure qui aurait due la modifier.

    La textbox lors de l'activation du userform prend la date du jour.
    Après quand je clicke sur la textbox je lance le calendrier de patricktoulon (contribuez) et je choisi une date....

    Userform actif modal.
    RAS tout va bien

    Userform actif non modal.
    Le textbox un court instant prend la valeur de la date souhaitée (vérifié grâce à un Me.Repaint juste avant le End Sub du calendrier) puis reprend sa valeur d'origine la date du jour.

    Comment faire pour suivre ce que le code effectue après le end de la procédure du calendrier?????
    J'ai beau faire du pas à pas à partir du moment ou je passe sur le end du calendrier je ne vois pas où est la commande qui fait reprendre cette valeur à ma textbox.
    Je pensais à un moment que la procédure repassait par la commande activate du userform mais non .

    Auriez vous des idées?

    Merci et bonne journée

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 678
    Par défaut
    Salut,

    quel est le code VBA derriere tout cela, car faute de mieux, on ne peut que spéculer




    Donne nous de la matière pour tâcher de trouver une explication au probleme et par conséquent des pistes de solutions
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre confirmé
    Homme Profil pro
    ingenieur du son
    Inscrit en
    Avril 2017
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingenieur du son
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2017
    Messages : 212
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message




    Donne nous de la matière pour tâcher de trouver une explication au probleme et par conséquent des pistes de solutions
    Merci Jean Philippe la mienne aussi l'est... en panne

    Le classeur est assez complexe je suis en train de le réduire au maximum pour isoler le problème.
    En attendant le fait de passer en non modal cela ne fait que de débloquer ?

  4. #4
    Membre confirmé
    Homme Profil pro
    ingenieur du son
    Inscrit en
    Avril 2017
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingenieur du son
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2017
    Messages : 212
    Par défaut Pfff!!!!!
    Bon j'ai compris la grosse différence entre le modal et non modal dans mon cas:
    quand j'éxécute l'userform en non modal dès qu'il sort du userform du calendrier il repasse par le userform activate maintenant j'en suis sûr.....
    Mes précédentes recherchent ne l'avait pas mis en évidence mais là c'est du 100% !

    Est-ce une étape normale? on peut lui dire de passer par ailleurs par hasard?

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Par défaut
    Bonjour,

    C'est pour ça qu'il y a deux évènements : Initialize et Activate !
    Activate c'est chaque fois que l'userform est activé.
    Initialize c'est au chargement.

  6. #6
    Membre confirmé
    Homme Profil pro
    ingenieur du son
    Inscrit en
    Avril 2017
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingenieur du son
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2017
    Messages : 212
    Par défaut
    Ayant lu qu'il valait mieux passer directement en activate je n'avais pas cherché plus loin .... comme quoi il y a de tout sur les forums.....

    Merci Patrice (pour ne pas m'avoir dit que je ne m'exprimais pas en français ) et surtout un énorme merci à Jean-Philippe André, qui en me répondant, m'a donné le coup de pouce pour repartir à la recherche de mon erreur et m'a permis de la résoudre et d'avancer.C'est Top.

    Pour ceux qui veulent un peu plus d'explication je vais essayer d'être le plus clair possible en espérant que j'ai compris et que je ne vais pas vous enduire d'erreur:

    Load Userform
    Cette instruction va lancer la procédure indiquée par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub UserForm_Initialize()
    de l'userform concerné
    il ne s'affichera pas ,l'utilisateur ne pourra y avoir accès mais on pourra le préparer comme charger des données dans les textbox combobox etc en vue de sa très prochaine utilisation.

    Userform1.Show
    Au moment voulu ceci fera apparaître notre Userform et lancer la procédure indiquée par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub UserForm_Activate()
    A savoir qu'à différents moments certaines de vos actions vous referont repasser par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub UserForm_Activate()
    .
    Dans mon cas c'était en sortie d'un calendrier affiché sous forme d'un autre userform et du coup me rechargeait mes variables que j'avais déclaré dans l'Activate et pas dans l'Initialize.
    A savoir que dans bien des cas on le s'en aperçoit pas carles userform sont lancé en "modal" et que moi j'ai eu ces soucis dès que j'ai lancé mon userform en "non modal"

    Modal: le classeur est figé on ne peut pas avoir d'action dessus tant que le userform est ouvert Non Modal: on peut sélectionner avoir des actions sur le classeur en ayant l'userform ouvert a noter qu'il y a d'autres syntaxes pour ces deux modes.

    Super encore une journée au j'aurai appris quelque chose !

  7. #7
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Par défaut
    Citation Envoyé par pokypok Voir le message
    Load Userform
    Cette instruction va lancer la procédure indiquée par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub UserForm_Initialize()
    de l'userform concerné
    Effectivement, c'est le chargement qui déclenche Initialize mais attention, il n'y pas que Load,
    La première instruction qui fait référence à l'userform a aussi pour effet de le charger et,
    par conséquent elle déclenche aussi l'initialisation. Par exemple, Userform1.Textbox1.Value = "Test" suffit à charger l'usf.

    C'est une des raisons pour laquelle certains préfèrent utiliser Activate plutôt que Initialize mais il ne faut pas généraliser.

  8. #8
    Membre confirmé
    Homme Profil pro
    ingenieur du son
    Inscrit en
    Avril 2017
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingenieur du son
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2017
    Messages : 212
    Par défaut
    Merci beaucoup pour la précision

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

Discussions similaires

  1. Nom de l'userform actif en VBA
    Par Beginner37 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/02/2019, 12h15
  2. Comment accéder à un bouton d'un UserForm ouvert en non modal
    Par jayjay08 dans le forum Général VBA
    Réponses: 6
    Dernier message: 22/08/2011, 12h42
  3. [XL-2003] 2 userforms actifs en simultané
    Par sheep300 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/04/2011, 12h22
  4. [XL-2000] Mettre en pause une macro concernant un userform en mode non-modal
    Par toteuf dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 13/11/2009, 16h18
  5. [E-00] réduction du xls avec un userform actif
    Par zandru dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/12/2008, 08h46

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