Sub Macro1()
Dim PL As Range 'déclare la variable PL (PLage)
Dim NC As Integer 'déclare la variable NC (Nombre de Cellules)
Dim PC As Integer 'déclare la variable PC (Pourcentage de Cellules)
Dim I As Integer 'déclare la variable I (Incrément)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Dim NP As Range 'déclare la variable NP (Nouvelle PLage)
Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Set PL = Sheets("Feuil1").UsedRange 'définit la plage PL
NC = PL.Cells.Count 'définit le nombre de cellule NC de la plage PL
PC = Int(NC * 80 / 100) 'définit la valeur PC égale à 80% du nombre de cellules
Randomize 'lance le générateur de nombres aléatoires
Set NP = PL.Cells(Int(PC * Rnd + 1)) 'définit la nouvelle plage NP
For I = 1 To PC - 1 'boucle de 1 à PC-1
Set CEL = PL.Cells(Int(NC * Rnd + 1)) 'définit une cellule CEL aléatoirement
If Application.Intersect(NP, CEL) Is Nothing Then 'condition : si la cellule n'est pas incluse dans la plage NP
Set NP = Application.Union(NP, CEL) 'ajoute la cellule à la nouvelle plage NP
Else 'sinon
I = I - 1 'décrémente I
End If 'fin de la condition
Next I 'prochaine valeur de la boucle
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
NP.Select 'sélectionne la nouvelle plage NP
MsgBox PC & ", " & NP.Cells.Count 'message affichant PC et le nombre de de cellule de la novelle plage NP ('à supprimer)
End Sub