masquer des lignes

thib

XLDnaute Junior
bonjour

un cher memebre du forum m'a filé un code qui permet de masquer des lignes vides parmi un ensemble de données?
toutefois si dans les cellules d'une ligne il y a une formule, le code ne masque pas la ligne ?

comment faire
voici le code:

Columns(8).SpecialCells(xlCellTypeBlanks).Rows.Hidden = True

merci
 

Marc_du_78

XLDnaute Accro
Bonjour thib,

cette formule produit un résultat, il suffit d'inclure celui-ci dans le test.. exemple en colonne c on a la formule = A1+B1 (ceci recopié dans toute la colonne avec adresse relative) si A et B sont vides, la formule va produire 0 en résultat on peut donc créer la procédure suivante

Sub masquerlignes()
Dim cel As Range
For Each cel In Range('C:C')
If cel = '' Or cel = 0 Then
cel.EntireRow.Hidden = True
End If
Next
End Sub
 

thib

XLDnaute Junior
dans mon fichier j'ai par exemple 10 lignes avec des valeurs puis 3 lignes sans valeurs puis 15 lignes avce valeurs et apres plus rien (28 lignes en tout)

je voulais que la macro me masques les lignes où il n'y a pas de valeurs

ca marche mais à partir de la ligne 28 elle me masque les lignes jusqu'à la limite d'excel en lignes (+de5000 lignes) donc ca prend un temps fou

je voulais savoir sui ya moyen de modifier le code pour modifier ca $

merci
 

thib

XLDnaute Junior
j'ai encore unpetit probleme

je veut appliquer la macro ci dessus à plusieurs feuilles
j'ai donc le code suivant:

Sheets('lundi').Select
Range('C8').Select
Dim cel As Range
For Each cel In Range('C1:C20')
If cel = '' Or cel = 0 Then
cel.EntireRow.Hidden = True
End If

Next
Sheets('mardi').Select
Range('C8').Select
Dim cel As Range
For Each cel In Range('C1:C20')
If cel = '' Or cel = 0 Then
cel.EntireRow.Hidden = True
End If

Next

il y a un bug sur le 'Dim cel As range' pour mardi

sauraist tu de quoi ca peut venir

merci
 

Hervé

XLDnaute Barbatruc
Bonjour tout le monde

thib, si tu veux appliquer ce code sur des onglets nommées avec les jours de la semaine (du lundi au dimanche), tu peux faire une boucle comme ceci :


Dim i As Byte
Dim cel As Range

For i = 1 To 7
       
With Sheets(WeekdayName(i))
               
For Each cel In .Range('C1:C20')
                       
If cel = '' Or cel = 0 Then
                                cel.EntireRow.Hidden =
True
                       
End If
               
Next cel
       
End With
Next i


salut
 

Discussions similaires

Statistiques des forums

Discussions
312 367
Messages
2 087 648
Membres
103 628
dernier inscrit
rou37x