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 :

Usf Hide - comment retrouver l'USF masqué ? [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 633
    Par défaut Usf Hide - comment retrouver l'USF masqué ?
    Bonjour,
    j'ai plusieurs USF (Usf1, Usf2 et Usf3) qui font appellent à la même procédure qui fait un filtre sur la BdD. Pour voir les données filtrées, je dois masquer la USF (avec Hide).
    puis je demande à l'utilisateur s'il veut continuer ou pas.
    Selon sa réponse je réactive l'USF ou je la ferme.
    Le problème c'est que je ne sais pas quel est l'USF masqué

    J'utilise le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    If Usf1.Visible Then Usf1.Hide
    If Usf2.Visible Then Usf2.Hide
    If Usf3.Visible Then Usf3.Hide
    Select Case MsgBox("Un filtre a été positionné." _
                           & vbCrLf & "" _
                           & vbCrLf & "Voulez-vous continuer votre saisie ?" _
                           , vbYesNo Or vbQuestion Or vbDefaultButton1, "App")
    Case vbYes
                If Usf1.Visible = True Then Usf1.Show
                If Usf2.Visible = True Then Usf2.Show
                If Usf3.Visible = True Then Usf3.Show
    Sauf qu'une fois masquée, l'USF n'est pas plus visible que les autres...

    d'où ma question comment retrouver la USF masqué ?
    Merci pour votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Pompier de service
    Inscrit en
    Février 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Pompier de service

    Informations forums :
    Inscription : Février 2014
    Messages : 146
    Par défaut
    Bonjour,

    Je ne sais pas si j'ai bien compris, mais apparemment, il y a une erreur sur If Usf1.Visible = True Then Usf1.Show (et les suivantes)

    Si elle est visible, tu n'as pas besoin de la montrer ??? Ca ne serait pas le contraire, par hasard ???

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 133
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Question 1 - Dans quel but connaître l'endroit où elle est cachée, puisqu'il suffit de la rappeler par programmation.
    Question 2 - Pourquoi utiliser autant de UserForm et pourquoi les cacher.
    Je crois qu'une bonne analyse du projet permettrait sans doute de n'avoir qu'un seul formulaire ou un formulaire type menu et afficher le formulaire sélectionné dans le formulaire menu.
    Je n'ai jamais eu besoin en plus de 10 ans de programmation en VBA de cacher des UserForm. Je crois que c'est une question de conception.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    Drôle de manière de faire l'appel !
    Je connaissais "Les absents, levez le doigt"
    Je découvre maintenant : "Les présents, soyez présents"


    Et en plus : je ne comprends pas la logique d'une condition pour "montrer" si l'on doit de toutes manières "montrer" ! Qu'on montre donc, sans condition ! -->> le résultat sera le même : montrer !

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 133
    Billets dans le blog
    53
    Par défaut
    Bonjour Unparia,
    Je n'avais même pas regardé le code, me contentant de réagir à la question
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 633
    Par défaut
    Bonjour à tous et merci pour vos réponses.
    Effectivement, Phil'oche, c'est là qu'est le problème... masquée / visible comment savoir si un USF est masqué ?

    Je n'ai apparemment pas été claire ; désolée. mon problème c'est que j'ai 3 Usf qui font appel à une procédure identique ; donc quand celle-ci est déclenchée, je ne sais pas quel Usf l'a appelée. c'est pourquoi je commence par dire si Usf1 est visible je le masque et ainsi de suite ; mais une fois que l'utilisateur a vu ce qu'il y avait à voir, il faut qu'il retrouve l'usf d'origine.

    Il y a bien une solution avec une variable du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    If Usf1.Visible Then a=1: Usf1.Hide
    If Usf2.Visible Then b=2: Usf2.Hide
    If Usf3.Visible Then c=3: Usf3.Hide
    Select Case MsgBox("Un filtre a été positionné." _
                           & vbCrLf & "" _
                           & vbCrLf & "Voulez-vous continuer votre saisie ?" _
                           , vbYesNo Or vbQuestion Or vbDefaultButton1, "App")
    Case vbYes
                If a=1 Then Usf1.Show
                If b=2  Then Usf2.Show
                If c = 3 Then Usf3.Show
    mais cela me paraît pas la meilleur façon de faire...

    Merci encore pour votre aide

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    ce n'est pas tellement "mieux", mouftie ...
    Mais je commence à deviner ce que tu ne sais pas vraiment exposer.
    Et si tu avais la bonne idée de nous montrer non pas un morceau de la procédure dans laquelle se trouvent tes "instructions", mais la totalité (depuis Sub jusqu'à end Sub inclus) de cette procédure ? Cela nous aiderait probablement à y voir clair en dépit de la pauvreté de tes explications ...

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 133
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    d'où ma question comment retrouver la USF masqué ?
    Voir la propriété Visible de l'objet UserForm
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  9. #9
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 633
    Par défaut
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Sub VérifNir()
    'VERIFICATION DE L'EXISTANCE DU NIR DANS RECAP
    Application.ScreenUpdating = False
    If RcNir = "Sans espace" Then Exit Sub  'TbxNir récupéré ds TbxNir_BeforeUpdate
    Dim a As byte, b as byte, c as byte
    Call OuThé   'procédure qui va chercher les adresses des applications
        Dest = "Recap.xlsx"
        Set WbSc = ThisWorkbook
        Sheets.Add(after:=Sheets("SRA")).Name = "Récap" 'on crée une feuille pr récupérer Récap
        Set WbDest = Workbooks.Open(Filename:=Chem & "Admin\" & Dest)
        Set Plg = Range("TbRecap[Nir]")
        Set FindNir = Plg.Find(RcNir, LookIn:=xlValues, lookat:=xlWhole) ', LookAt:=xlPart
            sNom = FindNir.Offset(0, 1) 'récup du nom de l'assuré
    If Not FindNir Is Nothing Then  's'il existe
        'on copie le tableau et on ferme Recap
        Range("TbRecap[#All]").Copy ThisWorkbook.Sheets("Récap").Range("A1")
        WbDest.Close False  'on ferme sans enregistrer
        'on filtre sur le Nir
            Range("TbRecap").Columns("A:E").EntireColumn.AutoFit   'MeF
            [A1].AutoFilter 'Enlève les filtres
            [A1].AutoFilter 'Remet les filtres   'on filtre sur le nir
            ActiveSheet.Range("A1").AutoFilter field:=1, Criteria1:=RcNir
                If Usf_aSaisie.Visible Then a = 1: Usf_aSaisie.Hide
                If Usf_dModif.Visible Then b = 2: Usf_dModif.Hide
                If Usf_cCslt.Visible Then c = 3: Usf_cCslt.Hide
        'on dde si on continue la saisie ou non ?
        Select Case MsgBox("Un filtre a été positionné sur le(s) enregistrement(s) du NIR demandé(s)." _
                           & vbCrLf & "" _
                           & vbCrLf & "Voulez-vous continuer votre saisie avec ce NIR ?" _
                           , vbYesNo Or vbQuestion Or vbDefaultButton1, "Vérifcation du Nir")
            Case vbYes  'a-t-on été gérant ? vNir=1 sinon vNir= 2
                'on supp la feuille Récap et on reprend la saisie
                Call SupFeuilRecap
                'on cherche si le gerant connecté à traité l'assuré
                    vNir = 1    'fera un filtre pour avoir notre historique
                    Var = True
                If a = 1 Then
                    Usf_aSaisie.Show
                    Usf_aSaisie.TbxNom = sNom
                    Usf_aSaisie.TbxDtCo.SetFocus
                if b = 2  then 
                    Usf_dModif.Show
                    Usf_dModif.TbxNom = sNom
                    Usf_dModif.TbxDtCo.SetFocus
                 Else   'c=3
                    Usf_cCslt.Show
                    Usf_cCslt.TbxNom = sNom
                    Usf_cCslt.TbxDtCo.SetFocus
                End If
            Case vbNo
                'on jette la feuille récap et on ferme l'USF et on ferme l'USF
                Call SupFeuilRecap
                If a =1 Then Unload Usf_aSaisie
                If b=2 Then Unload Usf_dModif
                If c=3 Then Unload Usf_cCslt
        End Select
    Else    'Si Nir NT
        vNir = 2
    End If
    End Sub
    Philippe :
    Voir la propriété Visible de l'objet UserForm
    , je ne vois pas ce que tu veux dire, j'ai bien cherché dans l'aide, je ne maitrise pas l'explorateur d'objet, cela ne m'aide pas.
    Pourquoi utiliser autant de UserForm
    un pour la saisie, l'autre pour la modif (qui modifie dans plusieurs fichiers) et un pour la conusltation
    pourquoi les cacher.
    pour accéder à la base de données filtrées, afin de voir tous les enregistrements. il s'agit d'Usf non modal, mais comme j'envoie un message, tant qu'on à pas répondu au message on ne peut pas déplacer l'usf et donc on ne voit pas la base de données.

    Encore merci pour votre aide et patience.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    En tête de tes Usf tu déclare une variable public!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public Afficher as booleant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Usf1.Afficher Then a=1: Usf1.Hide:Usf1.Afficher =false
    If a=1 Then Usf1.Show:Usf1.Afficher =true

  11. #11
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 133
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    un pour la saisie, l'autre pour la modif (qui modifie dans plusieurs fichiers) et un pour la conusltation
    C'est bien ce que je pensais, c'est un problème de conception.
    Il est parfaitement possible de Créer, Consulter, Modifier et supprimer à l'aide d'un seul et même formulaire.

    Je te conseille la lecture de cette contribution USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  12. #12

  13. #13
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 633
    Par défaut
    Bonsoir dysorthographie,
    Merci pour ta proposition qui fonctionne bien

    Philippe, merci pour ton lien que je vais étudier avec assiduité ; j'ai juste jeté un œil, il est très clair et surtout plein de méthodologie.
    Quand j'ai débuté avec les USF, j'ai suivi de nombreux tutos, je ne suis jamais "tombée" sur le tien... Dommage !

    Encore merci à tous.

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

Discussions similaires

  1. [Conseils] Comment retrouver un problème
    Par Shoryu dans le forum Sondages et Débats
    Réponses: 67
    Dernier message: 03/11/2006, 13h26
  2. Réponses: 2
    Dernier message: 17/06/2005, 23h03
  3. Comment retrouver le handle d'une application console?
    Par Laurent Dardenne dans le forum Windows
    Réponses: 7
    Dernier message: 22/12/2004, 16h58
  4. Comment retrouver les menus complets de Access ???
    Par sweety107 dans le forum Access
    Réponses: 3
    Dernier message: 20/12/2004, 11h33
  5. Comment retrouver les propriétés d'un fichier ?
    Par JuanLopez1966 dans le forum x86 32-bits / 64-bits
    Réponses: 1
    Dernier message: 01/09/2004, 16h34

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