Supprimer aléatoirement des valeurs

Florian95

XLDnaute Nouveau
Bonjour à tous,

je recherche une macro qui me permettrait de supprimer aléatoirement 30% des données présentes dans une colonne.

Merci de votre aide !

Florian
 

KenDev

XLDnaute Impliqué
Re : Supprimer aléatoirement des valeurs

Bonjour Florian,

Une possibilité ci dessous. Supprime 30% (arrondi) des données d'uniquement la colonne active.

Cordialement

KD

VB:
Sub Sup30Col()
    Dim a() As Byte, c%, r&, b&, d&, f&, i&
    c = ActiveCell.Column: r = Cells(Rows.Count, c).End(xlUp).Row: ReDim a(1 To r): f = Round(0.3 * r): Randomize
    Do
        d = Int(r * Rnd) + 1
        If a(d) = 0 Then a(d) = 1: b = b + 1
    Loop Until b = f
    Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
    For i = r To 1 Step -1
        If a(i) = 1 Then Cells(i, c).Delete Shift:=xlUp
    Next i
    Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic: Cells(1, c).Select
End Sub
 

Statistiques des forums

Discussions
312 496
Messages
2 088 979
Membres
103 996
dernier inscrit
KB4175