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 :

conflit entre userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    R&D laboratoire
    Inscrit en
    Janvier 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D laboratoire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 83
    Par défaut conflit entre userform
    Bonjour,
    Dans une feuille N°1, un userform offre plusieurs choix de traitement de données aboutissant à la création d'une feuille N°2.
    Dans cette feuille N°2, je souhaite faire apparaître un autre userform en modeless, lequel, après ajout d'info par l'utilisateur doit déclencher un autre traitement aboutissant à une feuille N°3 etc.
    A l'essai, je reçois un message m'indiquant qu'un userform modeless ne peut s'exécuter alors qu'un modal est ouvert (malgré le unload que j'ai mis avant le traitement). Comment éviter ce conflit? et quelle est l'approche rationnelle. Voici deux solutions possibles mais pas forcément élégantes ni rationnelles:
    1. la macro de la feuille 1 crée un bouton de formulaire qui permet après son exécution de faire apparaître le userform 2 modeless (çà doit être mieux avec un bouton activeX mais çà me paraît plus laborieux).
    2. ruser avec des feuilles masquées qui sont érasées sauf un bandeau en en-tête supportant des boutons
    Merci pour m'aider dans la manipulation de ces outils que je maîtrise mal
    Bon week-end, Serge

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Dans l'ordre des évènements, tu as bien mis le Unload du UserForm1 avant l'affichage du UserForm2 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
    '...procédure
    Unload Me
    UserForm2.Show
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    R&D laboratoire
    Inscrit en
    Janvier 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D laboratoire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 83
    Par défaut
    Merci fring,

    Voici le code du userform 1: il commence par se décharger, puis appelle une procédure qui elle appelle le userform2 non modal.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CmdOKtri_Click()
      If OptCustom.Value = True Then
        Unload FrmTriMarkerList
        Call MarkersAssoc
      End If
      If FrmTriMarkerList.Visible = True Then Unload FrmTriMarkerList
    End Sub
    Pour l'instant, j'ai une solution temporaire à mon problème cad que la procédure appelée crée un bouton avec lequel l'utilisateur peut appeler le userform 2 une fois la feuille cible renseignée.

    Mon véritable problème maintenant est la conception de la suite de mon application: j'envisageais des feuilles crées par la macro, auxquelles seraient rattachées des userform visibles seulement quand le feuille est active; j'aurais maintenant tendance à sécuriser les choses avec des feuilles masquées, sur lesquelles des boutons seraient pré-positionnés et que ne nettoirais de leur contenu au lancement des procédures qui les appellent.
    Comment gèrerais-tu le problème?
    D'avence merci, Serge,

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par Taillise Voir le message
    Comment gèrerais-tu le problème?
    Ne connaissant pas les tenants et les aboutissants, comment veux-tu que je réponde à cette question ??

  5. #5
    Membre confirmé
    Homme Profil pro
    R&D laboratoire
    Inscrit en
    Janvier 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D laboratoire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 83
    Par défaut
    En reformulant de manière plus claire (du moins j'espère):
    1. Mes données cascadent de feuille en feuille.
    2. Elles subissent un traitement dans la feuille n, puis sont dupliquées après traitement dans la feuille n+1 pour en subir d'autres
    3. Pour créer la feuille n+1, je duplique et renomme la copie n+1.
    4. Compte-tenu du point 3, Je souhaitais que l'activation de la feuille "feuil n+1" provoque l'apparition du userform n+1 proposant les macros spécifiques pour la traiter


    l'option du point 3 m'oblige à avoir des commandes "immatérielles" non ancrées dans une feuille pré-existante: est-ce rationnel?

    Alternative: avoir des feuilles pré-existantes qu'on masque/démasque, qui sont automatiquement nettoyées de leur contenu antérieur à chaque traitement mais qui conservent leurs boutons d'option (avec le risque qu'un utilisateur modifie la structure de la feuille)

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Peut-être comme ceci, à la fin de ta procédure qui crée la feuille n+1, tu affiches le userForm en question mais encore une fois, difficile de répondre sans voir la totalité du code et l'explication de ce qu'il est censé faire.

  7. #7
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Peut-être que je me plante, là, mais je me lance tout de même avec cette suggestion...

    Puisqu'il s'agit d'offrir une liste de macros pour traiter les données des différentes feuilles selon l'évolution du processus, ne serait-il pas plus judicieux d'utiliser un seul UserForm et le modifier dynamiquement au besoin ?

    Une autre suggestion : L'utilisation d'une barre d'outils personnalisé enregistrée avec le fichier Excel (le projet) dont les différents outils (boutons) sont associés a des macros et qui s'activent ou se désactivent au besoin. C'est une option qui est couramment utilisée en entreprise. J'ai quelque part des notes de cours sur le sujet... Mais ça nécessite quelques fouilles archéologique sous les décombres de boîtes et de cahiers à anneaux (la pile a glissé et je les replacés en vrac sur l'étagère...). Je ferai ces fouilles que si personne n'a d'exemple sous la main à te proposer...

  8. #8
    Membre confirmé
    Homme Profil pro
    R&D laboratoire
    Inscrit en
    Janvier 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D laboratoire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 83
    Par défaut
    Merci pour votre réponse,çà fait chaud au coeur

    • Travailler avec un userform unique est complexe et m'oblige à revenir sur les 50% de l'application qui sont au point...et bien sûr j'ai une date buttoir.
    • Intégrer les boutons dans une barre excel est attractif mais je n'en ai aucune expérience.
    • L'appel par la procédure du userform suivant est le plus réalisable dans le temps imparti, sauf que si l'utilisateur doit renseigner certains champs sur la feuille, il faut créer un userform modeless et là çà buggue, ou il y a des msgbox qui ne s'affiche plus sans que je comprenne pourquoi...
    .

    le fichier joint est réduit aux seules feuilles/modules qui posent problème (enfin çà fonctionne mais...). Devant m'absenter pour un jour, ne vous étonnez pas si je ne peux répondre à vos questions par retour.
    Merci, Serge
    Fichiers attachés Fichiers attachés

  9. #9
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par Taillise Voir le message
    Intégrer les boutons dans une barre excel est attractif mais je n'en ai aucune expérience
    Si ça peut t'aider, je vais te donner l'adresse d'un article.
    Il n'est pas encore publié officiellement mais il ne devrait pas contenir de trop grosses coquilles

    Cela te permettra, comme l'a dit zaza, de créer une barre de menus propre à ton classeur, de l'afficher à l'ouverture de celui-ci, de masquer ou de rendre visibles tes boutons comme bon te semble, etc...

    L'avantage d'utiliser une barre de menus, c'est que les boutons de commande restent accessibles peu importe la feuille et la cellule sur laquelle tu te trouves.

    Création d'une barre de menus personnalisée

  10. #10
    Membre confirmé
    Homme Profil pro
    R&D laboratoire
    Inscrit en
    Janvier 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D laboratoire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 83
    Par défaut
    Merci Fred, je potasse ton document dans le train.
    Bonne journée, serge

  11. #11
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Pour renseigner des champs du formulaire à partir de données existant sur une feuille de calcul, il y a le composant RefEdit. Je ne sais pas s'il est présent par défaut dans la boîte d'outils de l'éditeur VBA : chez moi il est présent, mais je crois que je l'ai ajouté dans les références par défaut... Si ce n'est pas le cas chez toi, affiche la boîte de dialogue Composants (Ctrl + T) et sélectionne RefEditCtrl.

    Tu verras, ce composant est magique !

Discussions similaires

  1. Conflit entre javascript et script ASP
    Par Mvu dans le forum ASP
    Réponses: 2
    Dernier message: 22/02/2005, 16h28
  2. Possibles conflits entre GL, GLAUX et GLUT
    Par barthelv dans le forum GLUT
    Réponses: 1
    Dernier message: 19/11/2004, 12h31
  3. Conflit entre bases de données
    Par BRODU dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/10/2004, 11h40
  4. conflit entre couleurs
    Par khayyam90 dans le forum OpenGL
    Réponses: 2
    Dernier message: 03/07/2004, 18h00
  5. [Technique] Conflits entre plusieurs requêtes
    Par Neowile dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 24/03/2003, 09h37

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