VBA Masquer la ligne si toutes les cases à partir de la colonne D sont vides.

fabancel

XLDnaute Junior
Bonjour.

Je fais mes premiers pas en VBA et je sèche sur une macro pour masquer les lignes qui sont vides seulement à partir de la colonne D.

Ma macro actuelle va rechercher sur la feuille "module interrogation" des données et va sur la feuille "feuil1" crée une nouvelle colonne pour les classer en face du libellé qui leur correspond (recherchev toute bête).

Elle continue en copiant-collant les valeurs de cette colonne pour la figer.

J'aimerai terminer en masquant les lignes vides. cependant, sur ce tableau, les colonnes A, B et C contiennent les libellés, ce qui rend la ligne non vide. Il faudrait donc que la macro masque les lignes pour lesquels les cases "D" à "X" sont vides.

Je n'arrive pas à trouver cette commande.

Un grand mercià ceux qui pourront m'aider
 

Pièces jointes

  • code mvt.xls
    90 KB · Affichages: 50
  • code mvt.xls
    90 KB · Affichages: 52
  • code mvt.xls
    90 KB · Affichages: 51

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : VBA Masquer la ligne si toutes les cases à partir de la colonne D sont vides.

Bonjour Fabancel,

avec ce code à mettre dans un module:
Code:
Sub Masquer()
For i = 8 To Range("A65535").End(xlUp).Row
vide = ""
For j = 4 To 24
vide = vide + Cells(i, j)
Next j
If vide = "" Then Rows(i).EntireRow.Hidden = True
Next i
End Sub

à+
Philippe
 

Pièces jointes

  • 111.xls
    108 KB · Affichages: 54
  • 111.xls
    108 KB · Affichages: 52
  • 111.xls
    108 KB · Affichages: 52
Dernière édition:

fabancel

XLDnaute Junior
Re : VBA Masquer la ligne si toutes les cases à partir de la colonne D sont vides.

Merci Philippe, ça fonctionne au top.


En revanche j'ai rien compris au code que tu as créé.

Si tu as deux minutes de plus, pourrais-tu m'expliquer s'il te plaît, histoire que je puisse l'étendre ou le réutiliser au besoin ?

Merci encore.
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : VBA Masquer la ligne si toutes les cases à partir de la colonne D sont vides.

Re,
Merci Philippe, ça fonctionne au top.


En revanche j'ai rien compris au code que tu as créé.

Si tu as deux minutes de plus, pourrais-tu m'expliquer s'il te plaît, histoire que je puisse l'étendre ou le réutiliser au besoin ?

Merci encore.
avec un code encore plus court:
Code:
Sub Masquer()
Application.ScreenUpdating = False
For i = 8 To Range("A65535").End(xlUp).Row
If Application.CountIf(Range(Cells(i, 4), Cells(i, 24)), "") = 21 Then Rows(i).EntireRow.Hidden = True
Next i
Application.ScreenUpdating = True
End Sub
Explications:
For I = 8 To ............ de la ligne 8 à la dernière ligne non-vide de la colonne A
If Application.CountIf.................. si il y a 21 cellules vides dans la ligne (de la 4° à la 24° colonne) on masque la ligne

à+
Philippe
 

Discussions similaires

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa