Masquer les colonnes vides

VALNOE2626 Messages postés 12 Statut Membre -  
 valnoe -
Bonjour,

J'ai créé une macro pour masquer les colonnes vides.

Le problème est que ça ne masque que la ligne 6, alors que je voudrais que soit maquer les colonnes vides sur une sélection de lignes de 6 à 125.

Pouvez vous m'aider.

Ma macro

Sub Masquer()
'Masque les colonnes où L3=X
Application.ScreenUpdating = False
Dim i As Integer
For i = 6 To 114
If Cells(6, i) = "" Then
Columns(i).Hidden = True
Else: Columns(i).Hidden = False
End If
Next i
Application.ScreenUpdating = True
End Sub

Merci

Valérie

1 réponse

  1. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Sub Masquer()
    Dim i As Integer
    'Masque les colonnes où L3=X
    Application.ScreenUpdating = False
    For i = 6 To 114
    If Application.CountIf(Cells(6, i).Resize(120), "<>") = 0 Then
    Columns(i).Hidden = True
    Else
    Columns(i).Hidden = False
    End If
    Next i
    Application.ScreenUpdating = True
    End Sub


    A+
    0
    1. VALNOE2626 Messages postés 12 Statut Membre
       
      Bonjour,

      Ça fonctionne merci.

      Par contre, si je fais un filtre sur le tableau et que je demande à masquer les colonnes vides, il prend en compte les lignes qui sont masquées par le filtre.

      Comment faire pour qu'il masque que les colonnes vides dont les lignes sont affichées.

      Merci

      Valérie
      0
    2. Gyrus Messages postés 3360 Statut Membre 526 > VALNOE2626 Messages postés 12 Statut Membre
       
      Sub Masquer()
      Dim i As Integer
      Application.ScreenUpdating = False
      Cells.Columns.Hidden = False
      For i = 6 To 114
      If Application.CountIf(Cells(6, i).Resize(120).SpecialCells(xlCellTypeVisible), "<>") = 0 Then
      Columns(i).Hidden = True
      Else
      Columns(i).Hidden = False
      End If
      Next i
      Application.ScreenUpdating = True
      End Sub


      A+
      0
    3. VALNOE2626 Messages postés 12 Statut Membre > Gyrus Messages postés 3360 Statut Membre
       
      J'ai un message d'erreur
      "erreur d'éxécution 13
      incomptabilité de type

      et j'ai la ligne ci-dessous en surbrillance

      If Application.CountIf(Cells(6, i).Resize(120).SpecialCells(xlCellTypeVisible), "<>") = 0 Then
      0
    4. Gyrus Messages postés 3360 Statut Membre 526 > VALNOE2626 Messages postés 12 Statut Membre
       
      Il faudrait que tu joignes le fichier pour m'aider à comprendre ce qui ne fonctionne pas ....

      Pour cela, tu peux utiliser https://www.cjoint.com/

      A+
      0