comment masquer des lignes en fonction du contenu d'une cellule ?

assniok

XLDnaute Occasionnel
bonjour a tous,

j'aimerais savoir si il est possible de masquer une ligne en fonction d'une cellule de cette mêmme ligne ?

par exemple, Si j'ai une valeur dans la cellule A1 (une date) de la ligne, je souhaierais que la ligne entiere soit masquée a l'ecran et aussi pour l'impression... en fait chaque ligne contenant une date dans la cellule Ax devrait être masquée...

merci pour votre aide et bonne journée ;)
 

Staple1600

XLDnaute Barbatruc
Re : comment masquer des lignes en fonction du contenu d'une cellule ?

Bonjour


Code:
Sub masque()
Dim plg As Range
Dim cell As Range
Set plg = Range("a1").CurrentRegion
For Each cell In plg
If IsDate(cell) Then
cell.EntireRow.Hidden = True
End If
Next
End Sub
Une variante
Code:
Sub masque_i()
Dim plg As Range
Dim cell As Range
Set plg = Range("a1:a" & [A65536].End(xlUp).Row)
For Each cell In plg
cell.EntireRow.Hidden = IIf(IsDate(cell) , True, False)
Next
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : comment masquer des lignes en fonction du contenu d'une cellule ?

Re



je profite de ce fil pour poser une question aux vbaistes du forum qui liront ce fil


Pourquoi la seconde macro ne fonctionne pas
s'il y a des dates dans plusieurs colonnes ?

Code:
Sub masque_i()'fonctionne
Dim plg As Range
Dim cell As Range
Set plg = Range("a1:a" & [A65536].End(xlUp).Row)
For Each cell In plg
cell.EntireRow.Hidden = IIf(IsDate(cell), True, False)
Next
End Sub
Code:
Sub masque_ibis()'ne fonctionne pas
Dim plg As Range
Dim cell As Range
Set plg = ActiveSheet.UsedRange
For Each cell In plg
cell.EntireRow.Hidden = IIf(IsDate(cell), True, False)
Next
End Sub
 

assniok

XLDnaute Occasionnel
Re : comment masquer des lignes en fonction du contenu d'une cellule ?

merci beaucoup pour cette reponse, cependant, une chose me parait etrange, je me retrouve avec des lignes masquées or qu'elles ne devraient pas puisque la cellule de reference est vide, donc pas de date...

une idée ?

De plus, comment faire l'inverse de cette fontion car j'aimerais qu'a l'aide d'un bouton je puisse afficher ou masquer ces cellules a volonté, en fonction de mes besoins ??
 

Staple1600

XLDnaute Barbatruc
Re : comment masquer des lignes en fonction du contenu d'une cellule ?

Re


Tu as essayé cette macro?
Code:
Sub masque_i()'fonctionne
Dim plg As Range
Dim cell As Range
Set plg = Range("a1:a" & [A65536].End(xlUp).Row)
For Each cell In plg
cell.EntireRow.Hidden = IIf(IsDate(cell), True, False)
Next
End Sub

Ici seul la cololnne A est traitée, s'il y a une date dans une cellule de la colonne A
la ligne est masquée.
Si la cellule est vide , la ligne reste visible

(testé sur XL2000)
 
Dernière édition:

assniok

XLDnaute Occasionnel
Re : comment masquer des lignes en fonction du contenu d'une cellule ?

en effet cela fonctionne impec !! merci

saurais tu faire l'inverse, pour que lorsque je rappuie sur mon bouton ça m'affiche a nouveau les lignes masquées ? en gros, pour avoir un bouton afficher / masquer les lignes ??
 

Staple1600

XLDnaute Barbatruc
Re : comment masquer des lignes en fonction du contenu d'une cellule ?

Re


Pour masquer /démasquer à volonté utilises celle-ci

Code:
Sub toogle_masque()
Dim plg As Range
Dim cell As Range
Set plg = Range("a1:a" & [A65536].End(xlUp).Row)
For Each cell In plg
If IsDate(cell) Then
cell.EntireRow.Hidden = Not cell.EntireRow.Hidden
End If
Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 993
Membres
103 422
dernier inscrit
victus5