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.Add & fonction Hide


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 40
    Par défaut UserForms.Add & fonction Hide
    Bonjour

    J'ai presque finalisé mon fichier de maintenance mais je viens de voir qu'une fonction ne marche pas autant que souhaité...Je m'explique, enfin je vais essayer. J'appelle des UserForms grâce à plusieurs boutons chacun étant relié à un contenu de case variable du dit formulaire. Pour solutionner ce besoin j'ai eu recours à une syntaxe de ce genre :

    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
    17
    18
    19
    20
     
    Private Sub M01_Click()
     
    '
    '
    '
     
    ' Start Time + Accès Module
     
    If Not IsEmpty(Range("Trigram1").Value) And Range("Flag1").Value = 1 Then
     
        Dim Top1 As Date
        If Range("Top1").Value = "" Then Range("Top1").Value = Now
        Dim UF1 As String
        UF1 = Range("G7").Value
        UserForms.Add(UF1).Show
     
    End If
     
    End Sub
    Le soucis c'est qu'ensuite et dans le même UserForm, je peux le masquer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub MasqueModule_Click()
     
    Me.Hide
     
    End Sub
    mais ensuite si je le rappelle grâce au premier code, celui-ci n'a pas gardé les modifications de l'utilisateur (check-list cochée, champ de saisie pour mesures ou autres commentaires).En fait dans ce cas il ouvre à priori un autre UserForm, identique mais vierge...

    Connaissaissez-vous une solution ou une piste pour solutionner ce pb svp ?

    Merci par avance

    Laurent

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 40
    Par défaut
    bonjour

    Là je ne peux plus tester...L'ordi à casa n'est malheureusement pas équipé pour. Pour ce qui est de ta déclaration UserForm je ne vois qu'une chose problématique à mes yeux et pour mon niveau de compétence actuel : où la placer pour la rendre toujours valide et pour ne pas la solliciter plusieurs fois ? "Relire" ce SET reviendrait dans ce cas au même problème non ?!?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 40
    Par défaut
    Pardonne-moi mais je ne vois pas comment déclarer ce SET une seule et unique fois dans ce que tu nommes "l'en tête du module usf". Que représente et où se situe ce terme pour toi ? Mon formulaire ne comprends qu'un bouton par UF car il y en a déjà 27 différents et affichables en même temps... En prévoir 2 pour accéder à chaque UF surchargerait vraiment mon interface

  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
    Ok, j'ai compris.
    La syntaxe que tu utilises est celle à utiliser si le nom est placé dans une variable
    J'ai donc testé et n'ai aucun problème avec ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
        Dim UF1 As String
        UF1 = Range("G7").Value
        UserForms.Add(UF1).Show
    End Sub
    Je peux masquer et ré-afficher UF1 autant que je veux. Ton pb doit être ailleurs. Je te mets mon test Pièce jointe 26389
    Comme quoi, j'apprends tous les jours. Donc, merci
    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 40
    Par défaut
    Tu arrives avec ce code à ré-afficher l'UF en gardant les modifs utilisateur (texte, check, etc.) ?!? De mon côté j'arrive aussi à l'ouvrir de nouveau mais sans garder ce qui a changé. Hmmmm, c'est cool pour toi mais cela ne me rassure pas lol A priori tu me dis que j'ai un bug ailleurs alors, mais où ?!? Mon code et sa structure ne sont pas si complexes que ça pffff c'est pas gagné gagné comme dirait Calcifer...

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Calcifer n'y est pour rien.

    Intéresse-toi plutôt aux différents évènement d'un UserForm et à quand ils sont subis par l'UserForm.

    Lorsqu'un évènement est subi, toutes les instructions contenues dans la procédure évènementielle sont bien évidemment exécutées.

    Voyons donc un peu ce qui se passe, par exemple, lorsque tu caches (Hide) un userForm ===>> il garde toutes ses valeurs
    Voyons maintenant (toujours dans cet exemple) ce qui se passe lorsque (show) on le montre à nouveau ====>> il subit l'évènement Activate

    Si, maintenant, des instructions sont présentes dans la procédure évènementielle Activate, elles s'exécuteront bien évidemment à nouveau ...

    Si les mêmes instructions sont par contre mises dans l'évènement Initialize de l'UserForm, c'est très différent car cet évènement n'est pas redéclenché par le Show.....

    Voilà ! ce n'est qu'un exemple ... A toi de chercher parmi tous tes évènements contenant, pour cet UserForm, des instructions... et à réfléchir sur ce qui se passe alors ...

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

Discussions similaires

  1. JQuery, Firefox et les fonctions hide() show()
    Par jwhy-graphiste dans le forum jQuery
    Réponses: 2
    Dernier message: 07/08/2012, 17h37
  2. [XL-2010] Userform initialisé en fonction de la ligne selectionée
    Par pyronb69 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/07/2012, 16h25
  3. [XL-2003] comportement bizarre fonction hide
    Par jumpman dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/06/2012, 23h17
  4. listes liées avec les fonctions hide et show de kquery
    Par rookieweb dans le forum jQuery
    Réponses: 3
    Dernier message: 22/12/2011, 18h22
  5. fonction hide
    Par tomtom187 dans le forum C++
    Réponses: 4
    Dernier message: 27/03/2006, 14h18

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