Trouver la deuxième valeur la plus élevée dans Excel VBA
Ci-dessous, nous examinerons un programme en Excel VBA cette trouve la deuxième plus haute valeur.
Situation:
1. Tout d'abord, nous déclarons deux objets Range et deux variables de type Double. Nous appelons les objets Range rng et cell. Une variable double appelée plus haute valeur et une variable double appelée deuxièmeVote.
Dim highestValue As Double, secondHighestValue As Double
2. Nous initialisons l'objet Range rng avec la plage sélectionnée et les deux variables Double avec la valeur 0.
highestValue = 0
secondHighestValue = 0
3. Nous voulons d’abord trouver la valeur la plus élevée. Nous voulons vérifier chaque cellule dans une plage sélectionnée au hasard (cette plage peut être de toute taille). Dans Excel VBA, vous pouvez utiliser la boucle For Each Next pour cela. Ajoutez les lignes de code suivantes:
For Each cell In rng
Next cell
Remarque: rng et cellule sont choisis au hasard ici, vous pouvez utiliser n’importe quel nom. N'oubliez pas de faire référence à ces noms dans le reste de votre code. La ligne verte est un commentaire et est ajoutée ici uniquement pour fournir des informations sur ce code.
4. Nous vérifions chaque cellule de cette plage. Si sa valeur est supérieure à mostValue, nous écrivons la valeur dans la variable mostValue. Ajoutez la ligne de code suivante à la boucle.
Remarque: la première valeur est toujours supérieure à mostValue car la valeur de départ de mostValue est 0.
5. Deuxièmement, nous voulons trouver la deuxième plus haute valeur. Nous ajoutons une autre boucle For Each Next.
For Each cell In rng
Next cell
6. Nous vérifions chaque cellule de la plage sélectionnée. S'il est supérieur à secondHighestValue et inférieur à mostValue, nous écrivons la valeur dans la variable secondHighestValue. Ajoutez la ligne de code suivante à la boucle.
7. Enfin, nous affichons la deuxième valeur la plus élevée à l'aide d'une MsgBox.
8. Placez votre macro dans un bouton de commande, sélectionnez les numéros et cliquez sur le bouton de commande.
Résultat: