Suppression de lignes inutiles Excel VBA

Bonjour, tout le monde.

Bon voila je suis en train d'éditer un petit outil qui permettra de faire automatiquement un planning, je ne rentre pas dans les détails...

La taille du tableau ainsi édité est donc variable.

Je pense que j'ai un petit pb de programation dans mon code mais à l'impression il y a systématiquement 200 lignes et bien sur les dernières sont vides et donc pour l'imprimer c'est pas top.

La seule solution, si je ne veu pas me relancer dans mon code, est de selectionner la dernière ligne de mon tableau jusqu'en bas de ma page est de les supprimer. J'arrive à faire cette opération quand ce sont des lignes fixes grâce à ces deux petites lignes:

Rows("50:65536").Select
Selection.Clear

Donc ici de la ligne 50 à la ligne 65536.

Je voudrai que le 50 soit la valeur de ma variable r.

Quel syntaxe dois-je mettre ?

Cordialement,

Grobibi34
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. Modérateur
    Bonsoir,
    Cette macro supprime les lignes vides de la feuille active.
    Sub SupprimerLigneVide()
    DerniereLigne = ActiveSheet.UsedRange.Rows.Count
    Application.ScreenUpdating = False
    For r = DerniereLigne To 1 Step -1
          If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
    Next r
    End Sub


    Bonne nuit
    1
    1. Contributeur
      bonjour,
      Supposons que tu recherche la dernière ligne valide (remplie) et la dernière colonne serrait par Ex: G

      DerniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row
      ZoneAimprimer="A1:G" & DerniereLigne
      ActiveSheet.PageSetup.PrintArea = ZoneAimprimer
      A+
      0
      1. Oui pas mal l'idée mais j'aimerai faire un fichier réelement simple pour l'utilisateur sans aucune formation, donc j'aimerai essayé de supprimé automatiquement "tout ce qui dépasse"
        0
        1. Contributeur
          Bon, si tu tient vraiment a travaillé a l'envers...

          DerniereLigne = (Range("A1").SpecialCells(xlCellTypeLastCell).Row) + 1
          ZoneASuprimer = DerniereLigne & ":65536"
          Rows(ZoneASuprimer).Select
          Selection.Clear
          A+
          0