Aujourd’hui nous allons voir une astuce simple en VBA pour apprendre à intervertir les valeurs de deux cellules Excel. Cette astuce est importante à maitriser car modifier simultanément deux valeurs est une étape extrêmement fréquente en programmation, y compris en VBA.
1) Déclarer les variables.
Dim temporaire As Double |
Nous allons avoir besoin par la suite d’une variable temporaire. Autant que possible, il faut nommer la variable de manière explicite: évitez les lettres seules (i, k,n) et préférez une courte description de la variable. C’est une bonne habitude de programmation à prendre, cela vous permettra de mieux vous rappeler à quoi sert cette variable (surtout dans le cas d’une longue macro).
Nous utilisons la commande Dim pour déclarer la variable, et nous devons également préciser le type Double qui peut contenir des nombres.
2) Stocker la valeur 1 dans la variable temporaire
temporaire = Range("B12").Value |
Si nous copions directement la valeur 2 à l’emplacement de la valeur 1, la valeur 1 sera perdue. Nous allons donc utiliser la variable temporaire afin de stocker la valeur 1 entretemps.
3) Déplacer la valeur 2 dans la valeur 1
Range("B12").Value = Range("D12").Value |
4) Affecter une nouvelle valeur a la Valeur 2
Range("D12").Value = temporaire |
Sub inverser() Dim temporaire As Double temporaire = Range("B12").Value Range("B12").Value = Range("D12").Value Range("D12").Value = temporaire End Sub |
Lorsque l’on clique plusieurs fois de suite sur le bouton, les valeurs changent de place.
Notez que si vous écrivez une lettre a la place des nombres, la macro renverra une erreur car la variable temporaire est de type Double, ce qui signifie qu’elle ne peut contenir que des nombres.
Cette question d’avoir a modifier simultanément deux valeurs sans les supprimer est capitale dans beaucoup de problèmes de programmation, vous savez maintenant surmonter ce problème grâce a une variable temporaire.