web-dev-qa-db-fra.com

Comment puis-je supprimer tout ce qui se trouve sous la ligne X dans VBA/Excel?

J'ai une longue variable X qui contient un nombre. Disons qu'il est 415.

Comment puis-je supprimer tout le contenu de la feuille de calcul de la rangée 415 et inférieure?

Je veux m'assurer que ma feuille de calcul est propre dans la rangée 415 et tout ce qui pourrait être en dessous.

Comment puis-je faire cela? Merci.

16
phan

Cela ressemble à quelque chose comme ce qui suit va répondre à vos besoins:

With Sheets("Sheet1")
    .Rows( X & ":" & .Rows.Count).Delete
End With

Où X est une variable qui = le numéro de la ligne (415)

36
danielpiestrak

Une autre option est Sheet1.Rows(x & ":" & Sheet1.Rows.Count).ClearContents (ou .Clear). Si vous souhaitez utiliser cette méthode au lieu de .Delete, c’est parce que toutes les cellules ayant des dépendances comprises dans la plage supprimée (par exemple, les formules qui font référence à ces cellules, même vides) finiront par afficher #REF. Cette méthode préservera les références de formule aux cellules effacées.

12
Zairja

Cette fonction effacera les données de la feuille à partir de la ligne et de la colonne spécifiées:

Sub ClearWKSData(wksCur As Worksheet, iFirstRow As Integer, iFirstCol As Integer)

Dim iUsedCols As Integer
Dim iUsedRows As Integer

iUsedRows = wksCur.UsedRange.Row + wksCur.UsedRange.Rows.Count - 1
iUsedCols = wksCur.UsedRange.Column + wksCur.UsedRange.Columns.Count - 1

If iUsedRows > iFirstRow And iUsedCols > iFirstCol Then
    wksCur.Range(wksCur.Cells(iFirstRow, iFirstCol), wksCur.Cells(iUsedRows, iUsedCols)).Clear
End If

End Sub
1
Grikisjan