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 :

Afficher masquer Frame [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité 72 ans
    Inscrit en
    Mai 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité 72 ans

    Informations forums :
    Inscription : Mai 2011
    Messages : 244
    Par défaut Afficher masquer Frame
    Bonjour à chacun, chacune,

    L'activation du classeur se fait par Mdp (multi utilisateur)
    La feuille AAA est : xlSheetVeryHidden

    Si l'admin (lui seul) se connecte la feuille AAA passe : xlSheetVisible
    Je recherche code Vba pour: Tester si cette feuille est visible ou pas

    Si feuille visible : afficher la Frame3 de l'Usf_Action et masquer bouton Imprimer
    Si feuille invisible : masquer la Frame 3 de l'Usf_Action et afficher le bouton imprimer

    En vous remerciant.

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par jean30 Voir le message
    Je recherche code Vba pour: Tester si cette feuille est visible ou pas
    Bin... il suffit de tester la même propriété que celle qui te sert à afficher/masquer la feuille, à savoir Visible.

    Pour ce qui est du reste de ta question, je n'ai pas de réponse : d'une manière générale, j'évite autant que possible d'utiliser des UserForm.
    Mais à ta place, plutôt que le masquer, je le rendrais inactif, ce qui est assez facile en agissant sur le code qu'il déclenche.

    Mais tu pourras peut-être trouver des réponses à tes questions ici :
    http://silkyroad.developpez.com/VBA/UserForm/
    https://excel.developpez.com/sources/?page=UserForm
    https://excel.developpez.com/faq/?page=UserForm

  3. #3
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
     
    Function IsVisibleSheet(Wsh As Worksheet) As Boolean
       IsVisibleSheet = Wsh.Visible = True
    End Function
     
    Sub Appel()
    Dim b As Boolean
       b = IsVisibleSheet(Sheets("AAA"))
       'boutonImprimer.Visible = Not b
       'Frame3.Visible = b
    End Sub
    Suppose que la Frame et le bouton soient non visible à l'ouverture.

  4. #4
    Membre éclairé
    Homme Profil pro
    Retraité 72 ans
    Inscrit en
    Mai 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité 72 ans

    Informations forums :
    Inscription : Mai 2011
    Messages : 244
    Par défaut
    Bonour pijaku, Menhir,

    Je vous remercie de vos réponses, j'avais réussi à trouver ceci qui fonctionne après correction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
        If Sheets("Param").Range("B3") = "Admin" Then [COLOR="#006400"]'vérifie la concordance de la personne loggée, 
            UserForm_MAJBase.Frame3.Visible = True
            UserForm_MAJBase.CmdBtn2.Visible = False
        Else
             UserForm_MAJBase.Frame3.Visible = False
             UserForm_MAJBase.CmdBtn2.Visible = True
        End If
    End Sub

  5. #5
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    @Menhir,
    Pas de pinaillage, je te plussoies.
    je suis, une fois de plus, allé au plus rapide...

    @jean30,
    Une bonne habiture*** à prendre est de ne pas faire de test If pour un "résultat Booléen".
    Ton code :
    Citation Envoyé par jean30 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
        If Sheets("Param").Range("B3") = "Admin" Then 'vérifie la concordance de la personne loggée, 
            UserForm_MAJBase.Frame3.Visible = True
            UserForm_MAJBase.CmdBtn2.Visible = False
        Else
             UserForm_MAJBase.Frame3.Visible = False
             UserForm_MAJBase.CmdBtn2.Visible = True
        End If
    End Sub
    Peut-être très facilement remplacé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Boo As Boolean
       Boo = Sheets("Param").Range("B3") = "Admin"
       UserForm_MAJBase.Frame3.Visible = Boo
       UserForm_MAJBase.CmdBtn2.Visible = Not Boo
    ***Cette faute de frappe est tellement sympa que je l'ai laissée telle qu'elle!

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par pijaku Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function IsVisibleSheet(Wsh As Worksheet) As Boolean
       IsVisibleSheet = Wsh.Visible = True
    End Function
    Je pinaille sans doute mais il me semble plus approprié de mettre = xlSheetVisible plutôt que = True.

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

Discussions similaires

  1. Afficher/masquer une div sur une autre frame
    Par jerome69003 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/11/2009, 19h32
  2. Afficher/Masquer un <DIV> au clique de la souris.
    Par Joad dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/09/2005, 11h55
  3. Afficher / masquer des champs
    Par mickeliette dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/08/2005, 12h51
  4. [SWING][THREAD]Méthodes pour afficher une Frame
    Par pompidouwa dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 05/05/2004, 11h35
  5. Afficher/Masquer un bouton comme IE 6
    Par benj63 dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/07/2002, 14h12

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