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 :

Masquer colonnes avec checkbox d'un userform suivant la feuille active [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 90
    Par défaut Masquer colonnes avec checkbox d'un userform suivant la feuille active
    Bonjour à tous,

    Alors voila, j'ai un userform permettant de masquer des colonnes suivant les checkbox cochées.

    Mon code est fonctionnel pour une feuille, voici le code associé :

    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
    Private Sub DefinitionDomaine_Initialize()
     
    'Fermeture du UserForm lors du clic sur le bouton valider
    'Sélection de la feuille SAN
    Private Sub Valider_Click()
        Unload DefinitionDomaine
        Worksheets("Synthèse Atteinte Norme").Select
        Range("A25").Select
    End Sub
     
     
    'Action CheckBox Activité
    Private Sub CheckBox_Activite_Click()
     If DefinitionDomaine.CheckBox_Activite.Value = True Then
        Worksheets("Synthèse Atteinte Norme").Range("C:E").EntireColumn.Hidden = False
     Else
        Worksheets("Synthèse Atteinte Norme").Range("C:E").EntireColumn.Hidden = True
     End If
     
    End Sub
     
    'Action CheckBox Epargne
    Private Sub CheckBox_Epargne_Click()
     If DefinitionDomaine.CheckBox_Epargne.Value = True Then
        Worksheets("Synthèse Atteinte Norme").Range("F:J").EntireColumn.Hidden = False
     Else
        Worksheets("Synthèse Atteinte Norme").Range("F:J").EntireColumn.Hidden = True
     End If
    End Sub
    J'aimerais savoir si il est possible d'étendre ce code avec d'autres feuilles ? A savoir si l'userform est lancé sur une autre feuille alors masquer des colonnes différentes.

    Cordialement,

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Enlève le nom des feuilles.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 90
    Par défaut
    Bonjour Daniel,

    Le problème est que si la feuille change, les colonnes a masquer ne sont pas les mêmes

    Cordialement

  4. #4
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 181
    Par défaut
    Bonsoir à tous,
    Utiliser l'instruction ActiveSheet.Name pour connaître le nom de la feuille.
    Ex. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Feuille As string   ' déclaration dans 1 module
    puis,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuille = ActiveSheet.Name
    puis,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select Case Feuille
       Case "Synthèse Atteinte Norme"
       Case "Toto"
    Mais le mieux serait d'utiliser le CodeName des feuilles car il reste le même, même si l'utilisateur change le nom des feuilles.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 90
    Par défaut
    Bonjour,

    Merci de ta réponse cependant, je n'ai jamais utilisé cette syntaxe ... j'ai testé de la manière suivante :

    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
    Public Sub DefinitionDomaine_Initialize()
     
    Public Feuille As String
    Feuille = ActiveSheet.Name
     
    Select Case Feuille
     
        Case "Synthèse Atteinte Norme"
        'Fermeture du UserForm lors du clic sur le bouton valider
        'Sélection de la feuille SAN
        Public Sub Valider_Click()
        Unload DefinitionDomaine
        Feuille.Select
        Range("A25").Select
        End Sub
     
     
    'Action CheckBox Activité
    Private Sub CheckBox_Activite_Click()
     
    Feuille = ActiveSheet.Name
    Select Case Feuille
    Case "Synthèse Atteinte Norme"
     If DefinitionDomaine.CheckBox_Activite.Value = True Then
        Feuille.Range("C:E").EntireColumn.Hidden = False
     Else
        Feuille.Range("C:E").EntireColumn.Hidden = True
     End If
    Case "Moyenne"
     If DefinitionDomaine.CheckBox_Activite.Value = True Then
        Feuille.Range("C:M").EntireColumn.Hidden = False
     Else
        Feuille.Range("C:M").EntireColumn.Hidden = True
     End If
    End Select
    End Sub
    J'ai l'erreur qualificateur incorrect sur feuille (If DefinitionDomaine.CheckBox_Activite.Value = True)..

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Teste ceci et adapte :
    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
     
    'Action CheckBox Activité
    Private Sub CheckBox_Activite_Click()
     
        Dim Feuille As Worksheet
     
        Set Feuille = ActiveSheet
     
        With DefinitionDomaine.CheckBox_Activite
     
            Select Case Feuille.Name
     
                Case "Synthèse Atteinte Norme"
     
                    Feuille.Range("C:E").EntireColumn.Hidden = Not .Value
     
                Case "Moyenne"
     
                    Feuille.Range("C:M").EntireColumn.Hidden = Not .Value
     
            End Select
     
        End With
     
    End Sub
    Le code "Initialize" du formulaire n'est pas complet !

    Hervé.

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 90
    Par défaut
    Parfait ! ça fonctionne !

    Je te remercie !

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

Discussions similaires

  1. Masquer colonne avec clic sans VBA
    Par ericdev67 dans le forum Excel
    Réponses: 2
    Dernier message: 06/03/2013, 20h01
  2. gridview colonne avec checkbox
    Par Gregney dans le forum ASP.NET
    Réponses: 3
    Dernier message: 09/06/2011, 18h01
  3. colonne avec checkbox
    Par doudine dans le forum JBuilder
    Réponses: 1
    Dernier message: 06/03/2007, 15h57
  4. Réponses: 1
    Dernier message: 24/10/2006, 13h10
  5. Réponses: 4
    Dernier message: 09/02/2005, 11h44

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