Trier les données dans Excel aléatoire VBA
Ci-dessous, nous examinerons un programme dans Excel VBA qui trie les données au hasard (dans cet exemple au hasard trie les noms).
Situation:
-
Tout d’abord, nous déclarons quatre variables. Une variable de type String que nous appelons TempString, une variable de type entier que nous appelons TempInteger, une variable de type entier que nous appelons i, et une variable de type entier que nous appelons j.
Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer
-
Nous écrivons 5 nombres aléatoires à la colonne B (un pour chaque nom). Nous utilisons la fonction de feuille de calcul ALEA.ENTRE.BORNES pour cela.
For i = 1 To 5 Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000) Next i
Résultat à ce jour:
Nous utiliserons les numéros à côté de chaque nom pour trier les noms. Le nom avec le numéro le moins cher, le nom avec le deuxième chiffre le plus bas, deuxième, etc.
-
Nous commençons une double boucle.
For i = 1 To 5 For j = i + 1 To 5
-
Ajoutez la ligne de code suivant:
If Cells(j, 2).Value < Cells(i, 2).Value Then
Exemple: pour i = 1 et j = 2, Wendy et Richard sont comparés. Parce que Richard a un nombre plus faible, on échange Wendy et Richard. Richard est à la première position maintenant. Pour i = 1 et j = 3, Richard et Joost sont comparés.
Joost a un plus grand nombre rien ne se passe. De cette façon, Excel VBA obtient le nom avec le numéro le plus bas à la première position. Pour i = 2, Excel VBA obtient le nom avec le deuxième chiffre le plus bas à la deuxième position, etc.
-
Si cela est vrai, nous
lien: / vba-exemples-échange des valeurs [swaps]
les noms.
tempString = Cells(i, 1).Value Cells(i, 1).Value = Cells(j, 1).Value Cells(j, 1).Value = tempString
-
Et on échange les numéros.
tempInteger = Cells(i, 2).Value Cells(i, 2).Value = Cells(j, 2).Value Cells(j, 2).Value = tempInteger
-
Ne pas oublier de fermer l’instruction if.
End If
-
Ne pas oublier de fermer les deux boucles.
Next j Next i
-
Tester le programme.
Résultat:
Remarque: vous pouvez ajouter une ligne qui supprime les chiffres dans la colonne B. Il est encore plus agréable de placer les numéros de chaque nom dans un tableau, donc pas de chiffres sont placés sur votre feuille de calcul. Toutefois, à titre d’illustration, nous avons choisi de placer les valeurs sur la feuille.