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 :

UserForms multiples et Feuilles modales


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 52
    Par défaut UserForms multiples et Feuilles modales
    Voici mon problème :
    J'ai un userForm de présentation. Il contient des boutons options qui affiche des feuilles de calcul lesquelles possèdent un bouton qui permet de réafficher ce UserForm de présentation.
    Ce userForm de présentation possède aussi 3 boutons qui chacun affiche un UserForm lesquels ont aussi un bouton qui les ramènent au UserForm de présentation.

    Je crée un nouveau UserForm. Je place dans le userForm de présentation un bouton avec lequel il affiche le nouvel UserForm. Tout cela fonctionne.
    Je place dans ce dernier userForm un bouton pour réafficher le UserForm de Présentation avec le même type de procédure que les 3 autres (UserForm.Show UserForm.Hide) et J'obtiens une erreur N° 401 libellée ainsi :

    "Impossible d'afficher une feuille non modale lorsqu'une feuille modale est affichée "

    Alors que je n'ai affiché aucune feuille de calcul, et que les instructions du bouton demandent comme pour les autres l'affichage du UserForm de présentation et que le va et vient avec les autres fonctionne sans problème. Le message d'erreur à un bouton Aide mais le clic sur celui-ci affiche une fenêtre vide.
    Y a-t-il quelqu'un qui a déjà eu ce genre de problème ,? Ou quelqu'un capable d'éclaircir ce mystère ?
    Merci d'avance à tous ceux qui pourraient m'aider.
    Avnaim

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par AVNAIM
    Je place dans ce dernier userForm un bouton pour réafficher le UserForm de Présentation
    Bonsoir AVNAIM
    Comment recharges-tu cet userform ? Peux-tu montrer ton code ?

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut AVNAIM et le forum
    "Impossible d'afficher une feuille non modale lorsqu'une feuille modale est affichée "
    Alors que je n'ai affiché aucune feuille de calcul
    Faut pas espérer que Microsoft se mette à écrire des messages d'erreur explicites.
    Là, ça signifie qu'un objet modal est en cours.

    Ayant 3 USF fonctionnant de la même manière, la première approche serait de vérifier toutes les différences entre ces USF et le dernier.

    9a me semble bizarre, Excel ne tolérant pas le vide, il impose qu'une feuille au moins soit visible (même si elle est réduite). Mais je ne travaille pas sous la V.2007.

    A+

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    il impose qu'une feuille au moins soit visible (même si elle est réduite).
    Je ne comprends pas bien ce que tu veux dire. Si tu masque l'userform actif, il n'est plus visible mais il reste chargé... si tu parles de l'userform...
    Si tu masques toutes tes feuilles (sauf une), tu peux masquer la dernière avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Activewindow.visible = false
    Tu peux préciser pour AVNAIM. Pour le moment, je reste avec ma question : Comment charge-t-il l'userform récalcitrant

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut ouskel'n'or
    effectivement, la fenêtre peut être invisible, mais je ne pense jamais à cette solution
    A+

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Le seul intérêt que je vois à cette solution est en cas de nécessité de confidentialité à l'ouverture d'un classeur et saisie d'un mot de passe... ou pour faire beau lors de l'affichage d'une page d'accueil sur userform (bon, ça fait deux ! )

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut
    Bonjour,
    A tester (avec ce que j'ai compris), mettre dans chacun des 3 derniers USF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	Private Sub UserForm_Initialize()
    	  Unload (Usf de présentation)
    	End Sub
    	Private Sub CommandButton1_Click()
    	  UserForm(numéro).Hide
    	  (Userform de présentation).Show 0
    	End Sub

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 52
    Par défaut
    Merci à tous pour vos réponses à mon problème et votre courage pour "décrypter" mes explications.

    Chargement du userForm récalcitrant : Il est chargé par le clic sur un bouton du userForm de Présentation dont voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandButton4_Click()
      UserForm5.Show            ' Le userForm qui pose problème il est bien chargé et visible
      UserForm2.Hide
    End Sub
    Ce UserForm5 composant image mis à part ne possède qu'un seul bouton retour accueil
    Le code Click est le suivant comme le code retour des autres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandButton2_Click()
    UserForm2.Show                                    ' c'est ici que l'application se plante 
     UserForm5.Hide
    End Sub
    Le userForm qui le précède ne fait pour le moment pas grand chose : 2 boutons qui chacun ouvre une feuille . Ces 2 feuilles sont pour le moment vierges et possèdent chacune un bouton retour qui permet de réafficher le userForm lequel possède un bouton permettant le retour à l'accueil Voici le code de ce UserForm :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub CommandButton1_Click()
      Feuil11.Activate                                       ' active cette feuille vierge laquelle possède
                                                                        ' un bouton de retour qui fonctionne
      UserForm4.Hide
    End Sub
     
    Private Sub CommandButton2_Click()
      UserForm2.Show                                    'affiche le userForm de présentation (l'Accueil)
      UserForm4.Hide
    End Sub
     
    Private Sub CommandButton3_Click()
     Feuil19.Activate                                      ' active cette feuille vierge laquelle possède
                                                                        ' un bouton de retour qui fonctionne
       UserForm4.Hide
    End Sub

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Et si tu inverses tes lignes ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UserForm2.Hide
    UserForm5.Show ' Le userForm qui pose problème il est bien chargé et visible
    .................................

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut à tous
    Possible que ce soit un problème lié à l'USF, comme quand une feuille ne répond plus correctement sans aucune raison discernable
    Essaies de supprimer ton USF et de le recréer
    A+

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 52
    Par défaut
    Eureka 10000 Eurekas! Merci à tous grâce à vos suggestions j'ai fini par trouver où se logeaient mes "incohérences" dans ma tête et mon Code. Voilà :

    Mon UserForm récalcitrant ouvre en début la feuille de calcul et efface toutes les cellules excepté les formules. Il laisse cette feuille ouverte pour que s'inscrivent les sélections de l'utilisateur etc.. C'est en fait ce que" l'hermétique" message d'erreur Microsoft voulait dire !
    Il fallait donc comme l'a suggérer Ouskeln'Or inverser les intructions de retour vers l'acceuil : D'abord masquer le UserForm Actif puis afficher (Show) le UserForm d'accueil

    Et maintenant, je clique, je claque "j'explose" ….. tout marche sur des roulettes
    Merci encore à vous tous
    Avnaim

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

Discussions similaires

  1. faire une selection multiple de feuilles en fonction de variables
    Par blackhelmet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/10/2006, 11h32
  2. Soustraction a partir d'un userform vers une feuille excel
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/08/2006, 08h15
  3. [VBA-E] Feuille modale
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 08/08/2006, 12h59
  4. [VBA-E] erreur 422 d'abord cacher la feuille modale.
    Par morgan47 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/06/2006, 08h19
  5. [VB6]affichage d'une feuille modale / message d'erreur 400
    Par getea85 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/01/2006, 19h37

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