Re : VBA Ajouter sur une colonne un numéro d'odre et un nombre aléatoire
Bonjour Bernard, Robert, Gérard
Merci beaucoup pour vos super codes
.
Du coup, j'ai un peu testé sur quelques miliiers de lignes, c'est très rapide. Mais sur un exemple de 78 000 lignes
, le code de
Bernard , l'emporte.
Du coup vos codes m'ont donné lidée de faire ce code qui fonctionne mais, je n'ai pas supprimé les doublons
, donc, c'est plus rapide.
Code VBA:
Public TimerT1, TimerT2, TimerT3, TimerT4
Sub Temps_Macro_Debut()
TimerT1 = Timer
End Sub
Sub Temps_Macro_Fin()
Application.StatusBar = Format(Timer - TimerT1, "0.00") & " secondes"
End Sub
Sub OrdreCol5_AleaCol6_MJ_Avec_Doublons()
Temps_Macro_Debut
derl = Cells(Rows.Count, 1).End(xlUp).Row
Randomize
Cells(2, 5).Value = 1
Range(Cells(3, 5), Cells(derl, 5)).FormulaR1C1 = "=R[-1]C+1"
Range(Cells(2, 6), Cells(derl, 6)).FormulaLocal = "=ENT((" & derl & "*alea()) + 1)"
Columns("E:F").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Temps_Macro_Fin
End Sub
Sinon pour le code de
Robert ,c'est le plus rapide,mais il n'inscrit que sur la dernière ligne qu'une valeur
, bon c'est vrai qu'il a pris ma demande en considérant ce que j'avais demandé "ajouter en colonne 5 un numéro d'ordre en incrémentant de 1 et en colonne 6 un numéro aléatoire de 1 à N".
Le code de
Job sans doublons est impressionnant, il fonctionne bien et est très rapide sur des petites séries de quelques milliers de lignes.
Plutôt qu'un long discours, voici l'image avec les temps mesurés de mon test sur 78 000 lignes.