Masquer les colonnes vides

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

  • Votes
  • Date
  • Date décroissante
  1. 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+
    1. 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
    2. @VALNOE2626
      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+
    3. @GyrusJ'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