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 des colonnes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Directeur Usine
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur Usine
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Par défaut Masquer des colonnes
    Bonjour à tous,

    J'ai copié une trouvé sur le net pour pouvoir masquer, à partir de case à cocher, des lignes et des colonnes. Chaque case à cocher renvoie la valeur "vrai" ou "faux" en face des informations à masquer pour les lignes et sous les informations à masquer pour les colonnes.
    Elle fonctionne très bien pour les lignes mais pas pour les colonnes.
    Voici ma macro :

    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
    Sub Masque_les_lignes_non_retenues() ' masque les lignes CA, GP et MOP ou la valeur dans les cellules de la colonne C sont ="FAUX"
    
    Dim ligne As Integer
    Dim colonne As Integer
       'Cet exemple active la feuille nommée "data €"
    Worksheets("Data €").Activate
    For ligne = 6 To 31
    If Cells(ligne, 3) = False Then
     Rows(ligne & ":" & ligne).EntireRow.Hidden = True
    End If
    Next
    
    'masque les sites non cochés
    For ligne = 6 To 31
    If Cells(ligne, 5) = False Then
     Rows(ligne & ":" & ligne).EntireRow.Hidden = True
    End If
    Next
    
    'masque les mois non cochés
    For colonne = 6 To 146
    If Cells(3, colonne) = False Then
     'Columns(colonne & ":" & colonne).EntireColumn.Hidden = True
    End If
    Next
    
    'pour que le curseur se positionne en A1
    Range("A1").Select
    End Sub
    
    
    Sub Affiche_la_totalite_des_lignes()
    Range("C1:C50").Select
    Selection.EntireRow.Hidden = False
    Worksheets("consultation").Activate
    
    Range("A1").Select
    End Sub
    J'ai mis en gras souligné ce qui semble bloquer.
    Merci d'avance pour votre aide qui sera forcément précieuse.
    Bonne soirée.

  2. #2
    Membre Expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut
    Bonsoir,

    Des lettres et des chiffres.. Non, pas le jeu ...
    Voici une idée : regarde ici.

  3. #3
    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
    Ben
    ceci devrait tout simplement fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For colonne = 6 To 146
      If Cells(3, colonne) = False Then
        Columns(colonne).EntireColumn.Hidden = True
      End If
    Next

  4. #4
    Membre régulier
    Homme Profil pro
    Directeur Usine
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur Usine
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Par défaut
    Merci pour cette réponse rapide
    Je débute en VBA et j'ai maintenant une vingtaine d'heure d'expérience derrière moi puisque j'ai passé le WE à explorer les tutos et les posts !
    Je ne cherche pas à connaitre la lettre de ma colonne mais je veux juste la masquer si il est renseigné "FAUX" dans l'une de ses cellules. (le "FAUX" étant généré par une case à cocher d'un autre onglet.
    Cela fonctionne nickel pour masquer les lignes mais pas pour les colonnes

    Quelle différence y a-t-il entre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'masque les sites non cochés
    For ligne = 6 To 31
    If Cells(ligne, 5) = False Then
     Rows(ligne & ":" & ligne).EntireRow.Hidden = True
    End If
    Next
    et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'masque les mois non cochés
    For colonne = 6 To 150
    If Cells(3, colonne) = False Then
     Columns(colonne & ":" & colonne).EntireColumn.Hidden = True
    End If
    Next
    Merci....
    Fichiers attachés Fichiers attachés

  5. #5
    Membre régulier
    Homme Profil pro
    Directeur Usine
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur Usine
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Par défaut
    Merci unparia mais cela ne fonctionne.

  6. #6
    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
    Merci unparia mais cela ne fonctionne.
    Je ne vois pas pourquoi le code que je t'ai montré ne fonctionnerait pas. Il ne peut que fonctionner.
    Montre le code que tu as écrit incluant ce code (le code, pas le fichier. Lis ma signature).

    Et si ne marche pas, cela veut dire que la cellule de test ne contient pas la valeur False, mais autre chose (et quoi ? J'espère que tu ne confonds pas la valeur booléenne FALSE, obtenue par formule, avec la chaîne de caractère "FALSE" ou "FAUX", hein ...)

  7. #7
    Membre régulier
    Homme Profil pro
    Directeur Usine
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur Usine
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Par défaut
    Désolé mais j'ai vu ta signature trop tard.

    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
    Sub Masque_les_lignes_non_retenues() ' masque les lignes CA, GP et MOP ou la valeur dans les cellules de la colonne C sont ="FAUX"
    
    Dim ligne As Integer
    Dim colonne As Integer
       'Cet exemple active la feuille nommée "data €"
    Worksheets("Data €").Activate
    For ligne = 6 To 31
    If Cells(ligne, 3) = False Then
     Rows(ligne & ":" & ligne).EntireRow.Hidden = True
    End If
    Next
    
    'masque les sites non cochés
    For ligne = 6 To 31
    If Cells(ligne, 5) = False Then
     Rows(ligne & ":" & ligne).EntireRow.Hidden = True
    End If
    Next
    
    'masque les mois non cochés
    For colonne = 6 To 146
      If Cells(3, colonne) = False Then
        Columns(colonne).EntireColumn.Hidden = True
      End If
    Next
    
    'pour que le curseur se positionne en A1
    Range("A1").Select
    End Sub
    
    
    Sub Affiche_la_totalite_des_lignes()
    Range("C1:C50").Select
    Selection.EntireRow.Hidden = False
    Worksheets("consultation").Activate
    
    Range("A1").Select
    End Sub

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

Discussions similaires

  1. masquer des colonnes
    Par magictom42 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/07/2007, 14h16
  2. [VBA-E] Problème pour masquer des colonnes.
    Par martiweb dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/04/2007, 02h53
  3. Masquer des colonnes ?
    Par epfyffer dans le forum Deski
    Réponses: 15
    Dernier message: 10/01/2007, 13h23
  4. [Reporting Services] Masquer des colonnes
    Par deep_blue dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/08/2006, 22h21
  5. Masquer des colonnes dans un tableau
    Par fornorst dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 26/04/2006, 21h00

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