Masquer lignes vides
Résolu
peybernes
Messages postés
50
Date d'inscription
Statut
Membre
Dernière intervention
-
fabien25000 Messages postés 697 Statut Membre -
fabien25000 Messages postés 697 Statut Membre -
Bonjour à tous,
Mon fichier Excel comporte un tableau, susceptible d'avoir des valeurs en colonne A de la ligne 5 à la ligne 500.
Je souhaiterais à l'aide d'une macro, masquer toutes les lignes vides (entre ma dernière valeur et la ligne 500 donc).
En A1 j'ai la formule "=NBVAL(A5:A500)+4" qui me permet de savoir cbn de lignes sont remplies, je cherche donc le code pour masquer les lignes entre ma valeur obtenue en A1 et la ligne 500.
Merci d'avance pour votre aide !
Mon fichier Excel comporte un tableau, susceptible d'avoir des valeurs en colonne A de la ligne 5 à la ligne 500.
Je souhaiterais à l'aide d'une macro, masquer toutes les lignes vides (entre ma dernière valeur et la ligne 500 donc).
En A1 j'ai la formule "=NBVAL(A5:A500)+4" qui me permet de savoir cbn de lignes sont remplies, je cherche donc le code pour masquer les lignes entre ma valeur obtenue en A1 et la ligne 500.
Merci d'avance pour votre aide !
2 réponses
-
Bonjour,
Une idée pas testée mais qui devrait tourner :dim i as integer dim j as integer for i = 4 to 500 if worksheets("NOMDELAFEUILLE").range("A" & i) = "" then rows(i).hidden=true j = j + 1 end if if worksheets("NOMDELAFEUILLE").range("A1")= i - j then exit for next i
Quand on ne dispose que d'un marteau tout les problèmes ressemblent à un clou-
-
Bonjour,
En fait pour être plus rapide je souhaiterais que la macro sélectionne toutes les lignes vides en même temps et les masques toutes d'un coup au lieu de faire une par une.
Pour ça j'ai en C1 la formule "=NBVAL(A5:A500)+4" qui me permet de savoir cbn de lignes sont remplies et en D1 la valeur 500.
Dans ma macro j'ai :
prem_li = Cells(1, 3).Value
dern_li = Cells(1, 4).Value
Rows("prem_li:dern_li").Select
Selection.EntireRow.Hidden = True
Les 2 premières lignes lisent bien la valeur de la cellule en question mais la 3ème ligne ne fonctionne pas...
Avez-vous une idée pour cela ?
Merci beaucoup- ça me paraît normal que ça ne fonctionne pas, c'est bien de savoir combien de ligne il faut masquer mais il faut aussi savoir lesquelles!
c'est pour ça que je compte J pour sortir de la boucle : en gros " D1 - J = C1"
mais quoi qu'il en soit il faut forcément tester la ligne pour savoir si elle est à effacer
Ou alors... il faut réfléchir à un code surworksheet_change
qui détecte une entrée -> si ligne supérieure vide -> garde en mémoire puis peut être un bouton avec une macro "masquer les lignes"... à voir mais je risque de ne pas avoir le temps aujourd'hui
-
-
Bonjour peybernes,
Je te propose ce code VBA :
Option Explicit Sub Essai() Dim dlig As Long, lig As Long Application.ScreenUpdating = False dlig = Range("A" & Rows.Count).End(xlUp).Row For lig = 5 To dlig If Cells(lig, 1) = "" Then Rows(lig).Hidden = True Next lig End Sub
Faire un effacement d'un seul coup d'un bloc de lignes vides
est possible seulement si tes lignes vides sont contigües,
ce qui n'est peut-être pas forcément le cas.
Cordialement
-
-
-
Rien du tout elles sont vides, allez jusqu'à la ligne 500 est une sécurité que je prends.
Ma macro finale tourne une fois par semaine pour me sortir les données de la semaine en cours.
Très souvent, des lignes 200 à 500 toutes les lignes seront vides mais je préfère aller jusqu'à 500 "au cas où" des données sont présentes un jour. -
-
-