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 402 Statut Membre -
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.

1 réponse

  1. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
     
    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
    1. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
       
      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
    2. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
       
      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
    3. 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
    4. PlacageGranby Messages postés 402 Statut Membre 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
    5. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
       
      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