Masquer lignes cellules vides

Bonjour,

je dois pouvoir masquer les lignes vides d’un fichier. Il y a plusieurs solutions proposées sur ce forum et dans d’autres. J’ai donc choisi le code suivant :

Sub POURHIDE()

Range("AH8:AH20743").Select

For Each o In Selection

If o.Value = "" Then

o.EntireRow.Hidden = True

End If

Next

End Sub

Malheureusement, mon fichier est volumineux et il doit le devenir encore plus. À 20743 lignes, il a fallu 1 heure 30 pour qu’excel vérifie la valeur des cellules et masque celles qui étaient vides. Ultimement, le fichier atteindra 103715 lignes. Existe-t-il un code qui me permettrait de faire la modification plus rapidement ?

Merci !

Salut Mjb,

plus tu gardes des lignes vides, plus ton fichier grossira, forcément, masquées ou pas...

Pourquoi ne pas les éliminer au fur et à mesure qu'elles apparaissent ?

Il sera toujours possible de faire de la place après entre deux lignes si nécessaire!

A+

Bonsoir,

Pas bien choisi le code !

Essaie :

ActiveSheet.Range("AH8:AH21000").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Delete c'est pour suivre le conseil de Curulis.

Si tu tiens à masquer seulement, tu remplaces par .Hidden = True

Cordialement.

Merci Ferrand,

Ca me retourne un message d'erreur "Pas de cellule correspondante". Peut-être parce que toutes mes cellules contiennent une formule. Elles ne seraient donc pas "Blank" mais elles ont une valeur ""??

Pour ma compréhension, MFerrand,

SpecialCells(xlCellTypeBlanks) désigne bien toute cellule vide... pas une ligne vide!

Cela effacerait-il une ligne complète si elle comportait des cellules avec valeurs ?

Merci de m'éclairer!

A+

Certainement !

Alors tu mets un filtre, tu filtres pour laisser visibles les cellules contenant la valeur "" et tu utilises xlCellTypeVisible (à la place de ...Blanks).

Cordialement.

C'est simple et... ça fonctionne très bien!!! Merci!

SpecialCells(xlCellTypeBlanks) désigne bien toute cellule vide... pas une ligne vide!

On testait une colonne, pour appliquer à la ligne, donc oui c'est une cellule. C'est là que la propriété EntireRow (ou EntireColumn dans l'autre sens) a son utilité pour renvoyer la ligne à partir d'une cellule.

Nb- tu as certainement déjà pu noter son utilisation hors de propos, style : .Rows(x).EntireRow (qui ne déclenche pas d'erreur mais qui est un pléonasme niveau programmation...

A+

Certes!

Mais, en relisant le premier post, je constate (c'est ma perception) un hiatus entre la demande d'élimination (ou masquage) de toute LIGNES VIDES et le test sur une colonne où il procède à l'opération sur UNE CELLULE vide de la ligne.

C'est là que je ne comprends pas... mais, bon, si notre camarade est satisfait ainsi...

Tiens, je viens de poster un truc pour moi... pour une fois!

Si tu t'y connais en graphiques, j'ai un boulot pour toi!

A+

Bonjour Curulis,

J'avais vu, mais pas vraiment mon truc, les graphiques... Il me semble que tu devrais le mettre en place avec 2 séries de données, ajouter les autres séries par la suite (après la mise en forme). Pour actualiser, tu n'as à jouer que sur les séries de données (à décaler je suppose) ou même en jouant uniquement sur la plage source des données sans toucher au graphique...

Mais comme je bricole de façon pragmatique (et un peu au hasard) au cas par cas, face à un graphique, tu devrais avoir des avis plus éclairés.

Bonne journée ainsi qu'à mjb qui nous reçoit !

Rechercher des sujets similaires à "masquer lignes vides"