Effacer toutes les lignes d'un tableau

Bonjour Mike,
Dans le prolongement de cette macro résolue par tes bons soins (copier les données jusqu'à la derriere ligne), je souhaite maintenant effac?er d'un clic toutes les lignes copiées sur la feuille édit.
Ma fonction fonctionne en partie mais sur une seule ligne de tableau à effacer, empiète sur le texte qui est juste en dessous du tableau et efface du texte.

Merci pour ton aide

Dim I As Long
Dim Plage As Range
Set Plage = Range("E159:E" & Range("E160").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
Plage.Cells (I).EntireRow.Delete
Next
End Sub

5 réponses

  1. Bonsoir

    En supposant que tu connais les lignes à supprimer au moment de le faire

    Public Sub tamacro()
    Dim premli As Long, derli As Long
    ' les autres instructions de ta macro
    ' .....
    ' definition des lignes à supprimer quelque part dans ton code
    premli = 4
    derli = 12
    ' ....
    ' suppression des lignes de premli à derli
    Rows(premli & ":" & derli).EntireRow.Delete
    End Sub

    Attention, les lignes sont supprimées et non effacées

    bonne suite
    0
    1. Salut le fil,

      Philour, il n'est pas nécessaire d'ouvrir une nouvelle discussion qui ne te conduira à rien, et ce par méconnaissance des codes précédents et tu devrais répondre à mon post de cette la discussion

      Je me répète si c'est pour effacer les lignes précédemment copiées, à la place de les copier il suffit de les couper et donc dans le code remplacer Copy par Cut et le tour est joué.
      Mais va t'on savoir sans réponse ?
      0
      1. Mike,

        Je n'avais pas vu ta réponse sur la discussion précédente et le post étant classe résolu et ne connaissant pas la pratique, j'ai posé cette nouvelle question.
        Merci pour la réponse.

        En cherchant j'ai bidouillé le code suivant qui fonctionne et semble permettre donc d'effacer toutes les lignes d'un tableau sans empiéter sur du texte positionné après et avant le tableau. Si cela peut servir...

        Sheets("Edit").Select. ' sélection de ma feuille
        Dim DernierLigne As Long
        For I =1 To 54. ' 54 étant dernière ligne possible de mon tableau
        Range("E159).Select. ' la première ligne du tableau E 159
        DernierLigne = Sélection.End(xldown).Row ' recherche la dernière ligne du tableau
        If ActiveCell.Value <> 0 Then Sélection.EntireRow.Delete
        Next I
        End Sub
        0
        1. Merci à ccm81 pour sa réponse.
          0
          1. Effectivement Mike, je n'avais pas pensé à cette solution efficace de remplacer copy par cut bien adaptée à mon code.

            Encore merci !
            0