Trier de manière aléatoire les noms avec Excel VBA

1. Premièrement, nous déclarons quatre variables. Une variable de type String que nous appelons tempChaine, une variable de type Integer que nous appelons tempNombre, une variable de type Integer que nous appelons i et une variable de type Integer que nous appelons j.

Dim tempChaine As String, tempNombre As Integer, i As Integer, j As Integer

2. Nous écrivons 5 nombres aléatoires dans la colonne B (un pour chaque nom). Nous utilisons la fonction de feuille de calcul RandBetween pour cela.

For i = 1 To 6

    Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 450)

Next i

Résultat à ce jour:

Nous utiliserons les numéros à côté de chaque nom pour trier les noms. Les noms avec les nombres sont rangés dans l’ordre croissant.

3. Nous commençons une boucle double.

For i = 1 To 6

    For j = i + 1 To 6

4. Ajoutez la ligne de code suivante:

If Cells(j, 2).Value < Cells(i, 2).Value Then

Exemple: pour i = 1 et j = 2, Jospin et Armand sont comparés. Parce que Jospin a un nombre inférieur, nous échangeons Armand et Jospin. Jospin est maintenant au premier poste. Pour i = 1 et j = 3, Jospin et Melong sont comparés. Joost a un nombre plus élevé, donc 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 numéro le plus bas à la deuxième position, etc.

5. Si vrai, nous échangeons les noms.

tempChaine = Cells(i, 1).Value

Cells(i, 1).Value = Cells(j, 1).Value

Cells(j, 1).Value = tempChaine

6. Et nous échangeons les chiffres.

tempNombre = Cells(i, 2).Value

Cells(i, 2).Value = Cells(j, 2).Value

Cells(j, 2).Value = tempNombre

7. N’oubliez pas de fermer l’instruction If.

End If

8. N’oubliez pas de fermer les deux boucles.

  Next j

Next i

9. Testez le programme.

Résultat:

Remarque: vous pouvez ajouter une ligne qui supprime les numéros de la colonne B. Il est encore plus agréable de placer les numéros de chaque nom dans un tableau, donc aucun numéro n’est placé sur votre feuille de calcul. Cependant, à des fins d’illustration, nous avons choisi de placer les valeurs sur la feuille.

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x