Masquer lignes et colonnes vides

  • Initiateur de la discussion Initiateur de la discussion cibleo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cibleo

XLDnaute Impliqué
Bonsoir à tous,

J'aimerais cacher les lignes et les colonnes vides de mon tableau.
Plage à prendre en compte (B4:L15)

J'ai voulu m'inspirer d'un bout de code de Boisgontier, mais le résultat souhaité n'est pas obtenu 🙁

Je pense avoir un souci au niveau de la 2ème boucle (les colonnes)

Code:
Private Sub Cacher()
Dim i As Long
Dim j As Long
For i = 4 To 15
   Rows(i).Hidden = (Application.CountIf(Cells(i, 2).Resize(, 11), "") = 11)
Next i
For j = 2 To 12
   Columns(j).Hidden = (Application.CountIf(Cells(4, j).Resize(, 12), "") = 12)
Next j
End Sub

Dans mon exemple, ne devraient apparaitre que les lignes "Paul et Alain" ainsi que les colonnes "09:00 et 11:00".

Cibleo
 

Pièces jointes

Re : Masquer lignes et colonnes vides

Bonjour,

Tu peux également essayer ceci:
Code:
Sub Test()
For Each X In Range("B4:B15")
    If Application.CountA(X.Resize(1, 12)) = 0 Then X.EntireRow.Hidden = True
Next
For Each X In Range("B4:L4")
    If Application.CountA(X.Resize(11, 1)) = 0 Then X.EntireColumn.Hidden = True
Next
End Sub

Et ceci pour revenir au tableau :
Code:
Sub Test2()
With Range("B4:L15")
    .EntireRow.Hidden = False
    .EntireColumn.Hidden = False
End With
End Sub
 
Dernière édition:
Re : Masquer lignes et colonnes vides

Bonsoir Catrice,

Y' a pas une erreur à ce niveau !

Code:
For Each X [COLOR=red]In Range("B4:L4")[/COLOR]
    If Application.CountA(X.Resize(11, 1)) = 0 Then X.EntireColumn.Hidden = True
Next

Dans mon exemple la colonne 14:00 devrait s'afficher.

Cibleo
 

Pièces jointes

Re : Masquer lignes et colonnes vides

Bonsoir Cibleo, le fil,

En effet, le code de Catrice présente une légère erreur, mais pas à l'endroit que tu indiques 😀

Code corrigé :
Code:
Sub Test()
For Each X In Range("B4:B15")
    If Application.CountA(X.Resize(1, 12)) = 0 Then X.EntireRow.Hidden = True
Next
For Each X In Range("B4:L4")
    If Application.CountA(X.Resize(1[COLOR="Blue"][B]2[/B][/COLOR], 1)) = 0 Then X.EntireColumn.Hidden = True
Next
End Sub

(correction en bleu)

Bonne soirée
 
Re : Masquer lignes et colonnes vides

Bonsoir Excel-lent,

Exact et il y a aussi une erreur sur l'autre boucle 😉

Code:
Sub Test()
For Each X In Range("B4:B15")
    If Application.CountA(X.Resize(1, [COLOR="Blue"]11[/COLOR])) = 0 Then X.EntireRow.Hidden = True
Next
For Each X In Range("B4:L4")
    If Application.CountA(X.Resize([COLOR="blue"]12[/COLOR], 1)) = 0 Then X.EntireColumn.Hidden = True
Next
End Sub

Cibleo, chez moi ça fonctionne ...
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
915
Réponses
15
Affichages
791
Réponses
4
Affichages
736
Réponses
8
Affichages
786
Réponses
10
Affichages
669
Retour