Macro masque ligne si cellule vide sur l'ensemble des onglets

Résolu
OlivGFT Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
OlivGFT Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite crée une macro qui masque mes lignes si mes cellules sont vide.
Je souhaite également que cette macro fonctionne pour l'ensemble de mes onglets.
le but étant de crée un bouton " Hide" qui ferait fonctionner la macro pour l'ensemble de mes onglets.

Voici la macro que j'ai trouvé sur ce forum qui fonctionne tres bien :
Sub hide()
Range("C10:C129").Select 'C10:C129 correspond a ta plage de cellule que tu souhaite verifier
For Each o In Selection
If o.Value = "" Then
o.EntireRow.Hidden = True
End If
Next

End Sub

Au risque de me répéter cette macro ne fonctionne que si je selectionne 1 onglet. Je souhaite qu'elle marche pour l'ensemble de mes onglets ( quelque soit le nom de l'onglet) sauf les 3 premier onglet.
cela est t'il possible ?

Merci beaucoup pour votre aide !
A voir également:

3 réponses

lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
essaye..
Sub CacheLigne()

Dim TB, i As Integer, Cel As Range, B As Boolean
Dim Wkb As Worksheet
'Le nom des feuilles qu'il ne faut pas traiter
TB = Array("Feuil1", "Feuil2", "Feuil3")
For Each Wkb In Worksheets
B = False
For i = 0 To 2
If Wkb.Name = TB(i) Then B = True: Exit For
Next i
If Not B Then
For Each Cel In Wkb.Range("C10:C" & Range("C" & Rows.Count).End(xlUp).Row)
If Cel.Value = "" Then
Cel.EntireRow.Hidden = True
End If
Next Cel
End If
Next Wkb
End Sub

A+
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
Bonjour,

excusez l'incruste :o)
On peut éviter une boucle pour cacher les cellules vides dans la colonne c

Derlig = Columns("A").Find("*", , , , , xlPrevious).Row

On Error Resume Next
Range("C2:C" & Derlig).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True

remarque:
1/le repérage de la dernière ligne est sur la colonne A (supposée être la colonne de référence) car si la ou les dernières de la colonne C sont vides, ces lignes ne seront pas cachées...
2/ le "error resume next" est nécessaire pour éviter un blocage sur erreur si il n'y a aucune cellule vide
Michel
0
OlivGFT Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup à vous deux, cela marche super bien ( et c'est très rapide ! )
0