Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

suppression de lignes par rapport à une cellule

3 réponses
Avatar
richard
Bonjour,
J'arrive à mes fins par rapport à des cellules qui contiennet un commentaire :
Sub efface ligne()
With
Range("H3",Range("A6500").End(xlUp)).SpecialCells(xlCelltypeComments).EntireRow.Delete
End With
End sub
Si je remplace xlCellTypeComments par xlCellTypeBlanks (cellules vides) il
ne me supprime pas les lignes dont les cellules en colonne H ne contiennent
rien et me fait une erreur d'execution 1004 ==> impossible d'utiliser cette
commande sur des sélections qui se superposent.
Je suis largué !!!!
Merci d'avance pour votre aide

3 réponses

Avatar
Garette
Bonjour,

Sub test()
Range("a1:a" &
Range("a65536").End(3).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Avatar
Garette
Re-bonjour,

Sub test()
Set X = Range("A1:A" & Range("A65536").End(3).Row)
X.Offset(0, 7).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

La précédente macro marchait sur la colonne A.

Celle-ci gere le fait que la fin de la colonne H peut etre vide.
Elle se base sur la colonne A.
C'est à dire que la colonne A definit la hauteur de la zone à traiter.

Si c'est une autre colonne, il faut remplacer les "A" de la premiere ligne
de la macro par la colonne choisie et modifier le "7" dans Offset par le
decalage avec la colonne référence (en comptant à partir de zéro).
Par exemple : Réference = Colonne K

Sub test2()
Set X = Range("K1:K" & Range("K65536").End(3).Row)
X.Offset(0, -3).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Avatar
richard
Merci surtout pour les explications qui me permettent de mieux comprendre le
fonctionnement .
Merci encore


Re-bonjour,

Sub test()
Set X = Range("A1:A" & Range("A65536").End(3).Row)
X.Offset(0, 7).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

La précédente macro marchait sur la colonne A.

Celle-ci gere le fait que la fin de la colonne H peut etre vide.
Elle se base sur la colonne A.
C'est à dire que la colonne A definit la hauteur de la zone à traiter.

Si c'est une autre colonne, il faut remplacer les "A" de la premiere ligne
de la macro par la colonne choisie et modifier le "7" dans Offset par le
decalage avec la colonne référence (en comptant à partir de zéro).
Par exemple : Réference = Colonne K

Sub test2()
Set X = Range("K1:K" & Range("K65536").End(3).Row)
X.Offset(0, -3).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub