Masquer des lignes d'une plage suivant condition

Salut le forum

Toujours dans le cadre de l’amélioration de ma facture (voire fichier joint), je souhaite qu’on m’aide à masquer les lignes vides.

En effet, je saisis des données dans la plage B30 :B6024.

Il se trouve qu’à chaque fois beaucoup de lignes de la plage restent vide après que j’ai fini de saisir mes données.

Je souhaite qu’après la dernière ligne non vide (c'est-à-dire la 1ère ligne vide) jusqu’à la ligne 6024 soient masquées.

NB: je remercie au passage Philippe Tulipez qui m'a fait une proposition ailleurs mais ca ne s'adapte pas à mon cas.

Merci

Bonjour

Code Module

Sub Masque()
Application.ScreenUpdating = False
Dim Derlign As Byte
 Derlign = Range("A65536").End(xlUp).Row + 1
For i = Derlign To 6024
    If Cells(i, 1) = Empty Then Rows(i).Hidden = True
Next i
End Sub

Cordialement

Salut Amadeus

Merci pour votre solution.

Elle marche à merveille avec la colonne A mais pas avec la colonne B.

Pourtant c'est à partir de cette colonne que la condition devra être faite.

J'ai essayé de réaménager votre code en remplaçant A65536 par B65536 de même que cell (i, 1) par cell(i, 2) mais y'a débogage sur cette partie du code :

Derlign = Range("B65536").End(xlUp).Row + 1

Merci d'avance

Bonjour

Il n'y a vraiment aucune raison, sauf si yu as une ou plusieurs valeurs après la ligne 6024 dans la colonne B

Pour éviter cette possibilité, tu peux remplacer

Derlign = Range("B65536").End(xlUp).Row + 1

par

Derlign = Range("B6025").End(xlUp).Row + 1

Cordialement

Salut Amadeus

Je viens de tester votre dernière solution dans mon fichier réel et ca marche mais un sérieux problème subsiste :le temps de traitement. Il faut 3mn sinon plus pour que les lignes soient masquées.

Est-ce possible de rationnaliser le temps de traitement (la macro)?

Merci

Bonjour

Instantané avec l'installation du filtre automatique

Cordialement

Salut Amadeus et le forum

Je m'excuse pour le silence.

J'étais en congé et viens de reprendre.

J'ai testé votre nouveau fichier et j'apprécie le temps de traitement mais j'ai constaté qu'il masque toutes les lignes vides ; ce qui ne me conviens pas. Les lignes vides au dessus de la dernière cellule non vide ne doivent pas être masquées.

Est-ce possible de réaliser cela?

Merci

Bonjour

Le sujet initial était bien ?

Je souhaite qu’après la dernière ligne non vide (c'est-à-dire la 1ère ligne vide) jusqu’à la ligne 6024 soient masquées

Ou alors, je n'ai pas bien compris?

Cordialement

Merci pour le feedback.

Je pense que mon explication n'était pas très explicite.

Je souhaite qu’après la dernière ligne non vide (c'est-à-dire la 1ère ligne vide) jusqu’à la ligne 6024 soient masquées

Je pense que c'est l'explication entre parenthèse qui a fait defaut sinon je faisais allusion à la dernière ligne vide.

En resumé, je souhaite que le masquage concerne les lignes vides situées en dessous de la dernière ligne non vide jusqu'à la ligne 6024 (les lignes vides au dessus ne doivent pas être masquées même si elles sont vides).

Espérant m'avoir fais comprendre.

Bonjour

Retour au départ

Cordialement

Bonsoir

Une idée

Comme c'est après la dernière ligne non vide jusqu'à 6024

A tester avec le fichier d'Amadéus

Sub Masque()
Dim Derlign As Long
  Application.ScreenUpdating = False
  Derlign = Range("B6025").End(xlUp).Row + 1
  Rows(Derlign & ":6024").Hidden = True
End Sub

Salut Banzaï, Amadeus et le forum

Excusez-moi du retard de réaction. Nous connaissions des perturbations de reseau ces derniers temps mais tout vient de rentrer dans l'ordre. Merci pour vos magnifiques interventions. Mon problème a été solutionné.

Banzaï : ton code permet bien de masquer les lignes souhaitées mais t'as omis de me proposer le code pour afficher les lignes masquées. Est-ce possible de faire cela?

Encore merci

Bonjour

Pour afficher toutes les lignes masquées

Rows.Hidden = False

Salut Banzaï

merci c'est cool.

Hello,

Suite à ton message, j'ai essayer de transposer le code dans mon autre fichier et la macro se met en mode "Débogage" et m'informe qu'il y a un souci avec la ligne ci-dessous. Pourtant le nom du graphique est bien celui-ci. En transposant une macro dans un autre fichier, faut-il faire qqch. J'ai affecter la macro au graphique mais ça n'a pas suffit.

ActiveSheet.ChartObjects("Graphique 2").Activate

Merci pour l'aide.

Amdora

Rechercher des sujets similaires à "masquer lignes plage suivant condition"