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

  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

  8. #8
    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
    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 ...)
    Mais on va le savoir :
    mets-nous ici une copie d'écran montrant à la fois la barre de formule et une cellule sélectionnée et contenant TON false !

  9. #9
    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
    Nom : Sans titre.png
Affichages : 1636
Taille : 47,8 Ko

  10. #10
    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
    Hé bé !
    C'est bien ce que je pensais. Tu y as écrit du TEXTE et cette cellule ne contient donc pas une valeur booléenne, mais la chaîne de caractères "VRAI" !
    Si tu y veux une booléenne, va dans la barre de formule et saisis-y :
    =VRAI
    puis applique la formule (en appuyant sur la touche ENTER).
    Et corrige dans la foulée toutes les cellules devant contenir une booléenne

    Je vois par ailleurs la présence d'une cellule contenant #REF! (maiis c'est là encore un autre problème).

  11. #11
    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
    le problème réside dans le fait que cette valeur VRAI vient d'une case à cocher.
    Et cela fonctionne bien avec les lignes, bizarre non ?!?Nom : Sans titre.png
Affichages : 1612
Taille : 24,0 Ko


    Le #REF,correspond au mois de mars que je n'ai pas encore modifié.

  12. #12
    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
    Ecoute : je t'ai répondu ce qu'il fallait te répondre et qui explique ton dysfonctionnement.
    Et je n'ai aucune autre réponse possible. Il n'y a que celle-là.
    Après : comment et pourquoi tu te retrouves avec du texte et non une booléenne est un AUTRE SUJET, qui concerne d'autres éléments de ton code et que je me refuse donc de traiter dans CETTE discussion.

  13. #13
    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
    OK. Je te remercie de t'être penché sur mon problème.
    Je poursuis mes recherches.
    Bonne soirée.

  14. #14
    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
    Il y a beaucoup de choses étranges visibles sur ta copie d'écran.
    En ligne 3, on voit des =F3 ! Là encore, du texte (sinon afficherait ce que l'on voit en F3 et non "=F3"
    Même remarque en ligne 4 où l'on voit des "F1 + 11", etc ...
    Pas normal, tout cela (pas normal du tout).

  15. #15
    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
    Bon
    Tout cela m'intriguait et je me suis donc amusé à me constituer un petit classeur de simulation, en reprenant toutes les maladresses relevées.
    Constat : Excel se montre très tolérant et traduit malgré tout en True et False (pas très orthodoxe, mais Excel tolère)
    Constat 2 : le code que tu avais écrit (boucle sur les mois) plante
    Constat 3 : le code que je t'ai montré plus haut, ne plante pas

    J'ai donc cherché à comprendre pourquoi il y avait plantage chez toi.
    La seule différence que j'ai décelée entre mon classeur d'essai et l'image (ta capture d'écran) est la cellule T3 où l'on voit #REF! et dont je t'ai parlé en ma réponse 10.
    Cette cellule se trouvant très précisément sur la ligne 3 (directrice de ta boucle sur les mois), je me suis amusé à créer la même sur mon classeur --->>> et là --->> plantage
    Et ce plantage n'a rien à voir avec ma correction (mon code) et tout à voir avec une incompatibilité de type sur la cellule T3

    Voilà voilà.
    Efface le contenu de cette cellule T3 et tu verras que tout fonctionnera.

    Ceci étant dit : relis toutes les remarques que j'ai faites plus haut. Elles ont leur justification et méritent des corrections, même si ton problème présent est maintenant probablement résolu par l'effacement de cette cellule T3

    Bonne nuit.

  16. #16
    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
    Un grand merci pour toutes tes explications.
    J'ai repris le post depuis le départ et je me suis aperçu que j'en avais oublié les fondamentaux (le =F3 au lieu de VRAI ou FAUX par exemple).
    Tout fonctionne nickel !
    Encore merci d'avoir pris le temps de décortiquer mon problème.

+ 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