| auteurs : SilkyRoad, Singular |
Cet exemple supprime la ligne complète si des cellules de la plage A1:A10 sont en doublons:
Vba |
Option Explicit
Option Base 1
Sub SupprimeDoublons ()
Dim Plage As Range, Cell As Range
Dim Un As New Collection
Dim Tableau () As Integer
Dim x As Integer
Set Plage = Worksheets (" Feuil1 " ). Range (" A1:A10 " )
On Error Resume Next
For Each Cell In Plage
Un. Add Cell, CStr (Cell)
If Err . Number < > 0 Then
x = x + 1
ReDim Preserve Tableau (1 To x)
Tableau (x) = Cell. Row
Err . Clear
End If
Next Cell
On Error GoTo 0
If x = 0 Then Exit Sub
Application. ScreenUpdating = False
For x = UBound (Tableau) To LBound (Tableau) Step - 1
Worksheets (" Feuil1 " ). Rows (Tableau (x)). EntireRow . Delete
Next x
Application. ScreenUpdating = True
End Sub
|
|
| auteur : SilkyRoad |
La procédure suivante crée une série de nombres entre 1 et 25, de façon aléatoire et sans doublon.
Les valeurs sont écrites verticalement dans la feuille de calcul, et une option permet d'indiquer à partir de
quelle cellule (B1 dans l'exemple).
Vba |
Sub Test ()
GenereSerieAleatoireSansDoublons 25 , Range (" B1 " )
End Sub
Sub GenereSerieAleatoireSansDoublons (NbValeurs As Integer, Cell As Range)
Dim Tableau () As Integer, TabNumLignes () As Integer
Dim i As Integer, k As Integer
ReDim Tableau (NbValeurs)
ReDim TabNumLignes (NbValeurs)
For i = 1 To NbValeurs
TabNumLignes (i) = i
Tableau (i) = i
Next
Randomize
For i = NbValeurs To 1 Step - 1
k = Int ((i * Rnd ) + 1 )
Cells (Cell. Row + i - 1 , Cell. Column ) = Tableau (TabNumLignes (k))
TabNumLignes (k) = TabNumLignes (i)
Next
End Sub
|
Il est aussi possible d'effectuer le tirage sans macro:
Insérez la formule = Alea() dans la cellule A1, puis utilisez les poignées
de recopie jusqu'en A25.
Saisissez les nombres 1 à 25 chronologiquement dans la plage B1:B25
Dans la cellule C1 vous saisissez:
=RECHERCHEV(PETITE.VALEUR($A$1:$A$25;LIGNE());$A$1:$B$25;2;0)
puis utilisez les poignées de recopie jusqu'en C25.
Utilisez la touche clavier F9 pour lancer nouveau tirage.
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2008
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|