• Initiateur de la discussion Initiateur de la discussion thib
  • 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 !

T

thib

Guest
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
 
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
 
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
 
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
 
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
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
295
Réponses
3
Affichages
564
Réponses
3
Affichages
403
Retour