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 !