Macro pour masquer colonnes sans valeur

Résolu
Bonjour,

Je voudrais créer une macro pour masquer les colonnes de (B à AI) qui ne contiennent pas de valeur. Certaines cellules des colonnes en question sont parfois remplies de textes ou de "#VALEUR!". (la plage concernée est B2:AI66)

Pour faire plus simple, je voudrais pourvoir afficher seulement les colonnes contenant des valeurs <>0. Le reste on masque. Je vais associer ça à un bouton.

Est ce que quelqu'un aurait la gentillesse de m'aider ?
J'ai essayé de faire ça moi même mais j'ai beau essayer je ne comprends vraiment rien au VBA :'(

2 réponses

  1. Bonjour

    Je voudrais créer une macro pour masquer les colonnes de (B à AI) qui ne contiennent pas de valeur.
    Peux tu préciser
    Option 1. Aucune valeur dans toute la colonne
    Option 2. Pas de valeur dans une ou plusieurs lignes de cette colonne

    Cdlmnt
    0
    1. Bonjour,
      Merci de ton intérêt pour ma question :)
      En fait c'est l'option 1. Aucune valeur dans toute la colonne.
      Est ce que c'est possible de faire ça ?
      0
  2. à toi d'adapter les colonnes de début et de fin
    si les colonnes ont une entête non vide tu remplaces = 0 par = 1

    Const codeb = 3   ' colonne début > C
    Const cofin = 9   ' colonne fin > I
    
    Public Sub Masquer()
    Dim co As Long
    For co = codeb To cofin
      If Application.WorksheetFunction.CountA(Columns(co)) = 0 Then Columns(co).Hidden = True
    Next co
    End Sub

    Cdlmnt
    0
    1. Merci beaucoup je vais tester ça ! :)
      0
    2. Bon ça ne fonctionne pas... sans doute parce que dans les dites colonnes il y a du texte ou de #valeur.
      Une idée ?
      0
    3. Juste je reprécise : "Certaines cellules des colonnes en question sont parfois remplies de textes ou de "#VALEUR!"
      donc forcément si tu met =0 sans faire abstraction du texte ça ne fonctionne pas ^^ enfin de suppose !
      0
    4. Il faudra peut-être insérer une fonction de type "TEXTE=0" et "#VALEUR=0" ou SIERREUR=0 un truc du genre tu vois ce que je veux dire ?
      0
    5. J'ai trouvé la solution :)
      0