Supprimer un ensemble de cellules

Bonsoir,

Je ne comprend pas très bien comment fonctionne la fonction Delete, ce que je voudrais, c'est supprimer les cellules de la colonne 2 à 6 sur une ligne choisie aléatoirement, de manière à n'avoir plus que 50 lignes sur les 100 que j'ai au départ.

Pour cela j'utilise une boucle qui me supprimer une à une les lignes prise aléatoirement.

Le code ci-dessous fonctionne très bien, mais, lorsque j'ai beaucoup de lignes, et parce que j'aimerais comprendre ce qui ne va pas, j'aimerais savoir supprimer plusieurs cellules en même temps.

Comme dit, ce code fonctionne :

Sub Supp()
Dim j, k as Integer
For j = 100 To 50 Step -1
            k = Int(j * Rnd) + 1
            Sheets("test").Cells(k, 2).Delete shift:=xlUp
            Sheets("test").Cells(k, 3).Delete shift:=xlUp
            Sheets("test").Cells(k, 4).Delete shift:=xlUp
            Sheets("test").Cells(k, 5).Delete shift:=xlUp
            Sheets("test").Cells(k, 6).Delete shift:=xlUp
Next j
End Sub

Mais, celui ci ne fonctionne pas (erreur d'exécution 1004) :

Sub Supp()
Dim j, k as Integer
For j = 100 To 50 Step -1
            k = Int(j * Rnd) + 1
            Sheets("test").Range(Cells(k, 2), Cells(k, 6)).Delete shift:=xlUp 'c'est ici qu'il y a l'erreur 
Next j
End Sub

Et, encore plus étonnant, en faisant un test j'ai découvert que ce code fonctionne :

Sub Supp()
Sheets("test").Range(Cells(1, 2), Cells(10, 6)).Delete shift:=xlUp
End Sub

Je n'y comprend donc plus rien, si un expert de la suppression des cellules est dans les parages, ce serait très gentil de sa part de m'aider !

Bonsoir,

Un peu arrangé l'écriture... Mais ça fonctionne. Si cela ne fonctionnait pas, peut-être que la feuille concernée n'était pas la feuille active (?)

En tout cas, celui ci-dessous fonctionnera que la feuille soit active ou non !

Sub Supp()
    Dim j As Integer, k As Integer
    With Sheets("test")
        For j = 100 To 51 Step -1
            k = Int(j * Rnd) + 1
            .Range(.Cells(k, 2), .Cells(k, 6)).Delete xlShiftUp
        Next j
    End With
End Sub

Cordialement.

Merci beaucoup ! Effectivement c'était parce que la feuille "test" n'était pas la feuille active !

Du coup merci pour tes deux solutions !

D'où l'intérêt de qualifier les expressions pour s'affranchir de toute dépendance à la position de telle ou telle feuille...

Rechercher des sujets similaires à "supprimer ensemble"