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