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 :

affichage feuilles classeur


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut affichage feuilles classeur
    Bonjour,
    J'ai dans mon classeur plusieurs feuilles de calcul et une feuille de graphique.
    J'ai crée ce petit code mais il n'affiche pas ma feuille de graphique, pq?
    Merci pour votre aide
    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
    Dim ws As Worksheet
     
    If TBPW.Value = PW Then
        Debug.Print PW
        ThisWorkbook.Unprotect Password:=PW
        For Each ws In ThisWorkbook.Worksheets
                ws.Visible = True
        Next ws
        Unload frm_Admin
    Else
        With TBPW
            .PasswordChar = ""
            .Value = "Insert Password..."
        End With
    End If

  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
    Parce que les feuilles de graphiques ne sont pas des Worksheets mais des Charts.

    Remplace Worksheets par Sheets dans ton For Each.

    Lis ceci : https://docs.microsoft.com/fr-fr/off...i/excel.sheets

  3. #3
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    cela ne fonctionne pas

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    Pour cerner le prob ester simplement avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim ws As Worksheet
        For Each ws In ThisWorkbook.Worksheets
                ws.Visible = True
        Next ws

  5. #5
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    super cela fonctionne
    j'avais pas déclaré la variable convenablement

  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 rossemma Voir le message
    cela ne fonctionne pas
    Si tu ne montres pas le code écrit, difficile de savoir ce que tu as fait de travers...
    Tu as penser à modifier la déclaration de ws aussi ?

  7. #7
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    voici mon code modifié et il fonctionne jusqu'à présent

    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
    Dim sh As Variant
     
    If TBPW.Value = PW Then
        Debug.Print PW
        ThisWorkbook.Unprotect Password:=PW
        For Each sh In ThisWorkbook.Sheets
        sh.Visible = True
        Next
        Unload frm_Admin
    Else
        With TBPW
            .PasswordChar = ""
            .Value = "Insert Password..."
        End With
    End If

  8. #8
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    j'ai fait +/- le même code pour l'effet inverse mais il y a une chose bizarre qui se produit.
    Sur chaque feuille, il lance procédure activate alors que je veux juste les masquer.
    ex : sur la sh_11xx, il lance le formulaire qui se trouve dans la procédure activate, etc...

    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
    Private Sub CBUser_Click()
     
    Dim ws As Variant
     
    If TBPW.Value = PW Then
     
     
        For Each ws In ThisWorkbook.Sheets
            If ws.CodeName <> "sh_11xx" Or ws.CodeName <> "sh_12xx" Or ws.CodeName <> "sh_ab" Or ws.CodeName <> "sh_amif" _
            Or ws.CodeName <> "sh_amif" Or ws.CodeName <> "sh_dthw" Or ws.CodeName <> "sh_modif" Or ws.CodeName <> "sh_bdtablien" _
            Or ws.CodeName <> "sh_tablien" Or ws.CodeName <> "sh_cpk" Or ws.CodeName <> "grph_evomens" Then
                ws.Visible = False
            End If
        Next ws
     
        ThisWorkbook.Protect Password:=PW, Structure:=True, Windows:=False
        Unload frm_Admin
    Else
       With TBPW
            .PasswordChar = ""
            .Value = "Insert Password..."
        End With
    End If
     
    End Sub

  9. #9
    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
    Je n'ai pas la réponse à ta question.

    En revanche, ton test If m'intrigue.
    Il me semble que ws.CodeName <> "sh_11xx" Or ws.CodeName <> "sh_12xx" est forcément VRAI puisqu'un CodeName ne peut avoir qu'un seul nom.
    Donc, si la première condition (ws.CodeName <> "sh_11xx") est FAUX, la seconde (ws.CodeName <> "sh_12xx") sera forcément VRAI.
    Et si une seule des condition est VRAI, l'ensemble lié par un "Or" sera VRAI.

    N'aurais-tu pas confondu AND et OR ?

    Si c'est le cas, voisi une solution pour simplifier ton If :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            If InStr("/sh_11xx/sh_12xx/sh_ab/sh_amif/sh_amif/sh_dthw/sh_modif/sh_bdtablien/sh_tablien/sh_cpk/grph_evomens/", "/" & ws.CodeName & "/") = 0  Then

  10. #10
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    en effet j'ai confondu and et or.
    ta ligne fonctionne parfaitement

    Merci

Discussions similaires

  1. empêcher affichage feuilles masquées
    Par NATOU2 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/11/2008, 14h14
  2. Click sur cellule pour affichage feuille
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/06/2008, 11h07
  3. Protection feuille / classeur
    Par 20100. dans le forum Excel
    Réponses: 1
    Dernier message: 01/02/2008, 05h16
  4. proteger "affichage" feuille excel
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/08/2007, 19h19
  5. affichage du classeur étrange
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/08/2006, 09h02

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