Inverser deux valeurs avec un double clic

Bonjour à tous,

Voici un petit code qui permet d'inverser les valeurs de la cellule active avec la cellule à droite de celle-ci.

J'ai du l'utiliser lors d'un traitement semi-automatique d'extrait de compte. Parfois, le débit et le crédit étaient inversés et je voulais rapidement inverser les données. Un autre avantage est que la formule n'est pas perdue. Un couper-coller aurait remplacé la formule par un #REF.

Voici donc un fichier exemple :
cliquez ici pour télécharger

Et le code:
Vous noterez l'utilisation de l'array (variable tableau : arrInverseValeurs) qui permet de ne coller les données qu'une seule fois, et donc d'économiser un recalcul automatique.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    'Definition des variables
    Dim arrInverseValeurs As Variant
    ReDim arrInverseValeurs(1 To 1, 1 To 2) As Variant
    'on peut aussi ajouter ici une verification, par exemple
    If ActiveCell.Column <> 2 Or ActiveCell.Row <= 7 Then Exit Sub
    'on stocke les valeurs
    arrInverseValeurs(1, 1) = Cells(ActiveCell.Row, ActiveCell.Column + 1).Value
    arrInverseValeurs(1, 2) = Cells(ActiveCell.Row, ActiveCell.Column).Value
    'on rapatrie les donnees avec les valeurs inversees
    'l'utilisation du tableau permet de gagner du temps
    'en n'écrivant qu'une seule fois les valeurs dans la feuille
    Range(Cells(ActiveCell.Row, ActiveCell.Column), Cells(ActiveCell.Row, ActiveCell.Column + 1)).Value = arrInverseValeurs
    'on sort de la formule
    Cancel = True
End Sub
PS : Ne manquez aucune nouvelle astuce sur Excel, abonnez-vous à notre newsletter gratuite !
Pour marque-pages : permalien.

4 réactions à Inverser deux valeurs avec un double clic

  1. VINCI_Valentina _Lemiakina a écrit:

    Chouette, ce code.
    C’est donc avec la ligne 13 du code comme sur cette page (et non du fichier-exemple à télécharger) que c’est plus général et qu’on n’a pas à indiquer le numéro des colonnes à chaque fois où on sort des colonnes de l’exemple.
    Merci !

  2. VINCI_Valentina _Lemiakina a écrit:

    et ça marche avec des String’s, évidemment.

  3. Gaetan Mourmant a écrit:

    Oui, par contre, je pense que pour des valeurs d’erreurs ou des formules, ca ne fonctionnera pas.

  4. VINCI_Valentina _Lemiakina a écrit:

    et si, après avoir inversé, on re-double-clique sur la même cellule, ça rétablit l’ordre initial. Trop bon.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.