Hauteur de lignes à 0 si ligne vide

Résolu
bbtronic Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,
Je cherche une macro pour mettre les lignes d'une feuille Excel à 0 si il n'y a aucune donnée sur les lignes.
J'affecterai cette macro à un bouton.
Merci d'avance pour votre aide.

A voir également:

1 réponse

Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
Bonjour,

Par "mettre les lignes à 0", vous entendez supprimer la ligne? Masquer la ligne? Remplir une cellule de la ligne avec le chiffre 0?

Cordialement.
0
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
Comme votre sujet est "hauteur de ligne à 0", j'en déduis que vous souhaitez masquer cette ligne. Dans ce cas, utiliser le code suivant :

Sub LIGNE()

Dim DL As Long

DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'A supposer que la colonne de référence (la plus remplie jusqu'en bas) soit la colonne A

For i = DL To 1 Step -1 'Si la vérif commence en ligne 1

If Application.CountA(Rows(i)) = Empty Then Rows(i).EntireRow.Hide 'Remplacer Hide par Delete si vous souhaitez supprimer la ligne

Next i

End Sub


Cordialement.
0
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
Essayez ce code plutôt, je me suis planté sur l'autre, fatigue probablement...

Sub LIGNE()

Dim DL As Long

DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'A supposer que la colonne de référence (la plus remplie jusqu'en bas) soit la colonne A

For i = DL To 1 Step -1 'Si la vérif commence en ligne 1

If Application.CountA(Rows(i)) = Empty Then Rows(i).Hidden = True

Next i

End Sub


Cordialement.
0
bbtronic Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   > Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Kuartz,
Je n'ai pas réussi avec cette macro.
En fait le tableau dans ma feuille Excel comporte des colonnes de A à Q susceptibles de recevoir une info que je saisie.
En effet, je souhaite, par la macro, mettre LA HAUTEUR DE LIGNE à 0 des lignes qui n'ont aucune information de saisie de A à Q
Merci encore.
0
PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   26
 
Bonjour bbtronic, Kuartz

Dans le code de kuartz, il y a une boucle,
On boucle du début de la feuille jusqu'a a dernière ligne ayant des données....
Pour trouver justement quelle est cette dernière ligne, il a pris la colonne A en référence.

Si par exemple, il n'y aurait absoluement rien dans la colonne A, alors excel parcours cette colonne, et ne trouve rien, et la variable DL egale 1 et excel va seulement vérifier si la première ligne doit être masqué ou non.

Si il n'y a pas moyen de savoir quelle colonne va contenir plus d'information, alors il faudrait travailler sur une zone fixe.
Combien de ligne va avoir ton ficher ? 100 1000 10000

Et on adapte. on remplace DL par 10 000

For i = 10000 To 1 Step -1 'Si la vérif commence en ligne 1

If Application.CountA(Rows(i)) = Empty Then Rows(i).Hidden = True

Next i


L'utilité de la variable DL, est de ne pas boucler pour rien et sauver du temps, on trouve exactement jusqu'a quelle ligne on doit vérifié, mais pour le savoir, il faut connaitre quelle colonne est la référence.

Aussi, la variable i n'était pas défini, donc DIM i as long
0
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
Effectivement, lorsque je fais une boucle comme ça (aussi simple j'entend par là), je définis rarement ma variable i.

N'ayant pas le fichier sous les yeux, j'ai pris comme référence la colonne A, si celle-ci est vide, cela ne marche pas. Mais c'est précisé dans mon code.
0