Bonsoir à tous,
Voici une macro que j'ai trouvée. En cliquant sur une cellule ,elle prend la valeur 45 de l'index des couleurs ,puis si on clique sur une autre cellule la couleur disparaît et c'est la nouvelle cellule qui est colorée.
Bien qu'elle paraisse simple je n'arrive pas à voir comment elle marche.
voici ce que je comprends
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Option Explicit Public old_color, old_sel Sub Worksheet_SelectionChange(ByVal sel As Range) 'Changement de couleur après click If Not old_sel = "" Then Range(old_sel).Interior.ColorIndex = old_color old_sel = sel.Address old_color = ActiveCell.Interior.ColorIndex ActiveCell.Interior.ColorIndex = 45 End Sub
On crée deux variables old_sel et old_color qui sont Public et de type variant je suppose.
On teste si old_sell n'est pas vide or elle n'a aucune valeur initiale mais quand je suis sa valeur(infobulle), pas à pas , excel lui donne d'emblée la valeur d'une adresse , celle de la cellule sélectionnée à l'ouverture de la feuille??
Il ne la considère donc pas vide et lui donne comme couleur (après l'avoir considéré comme un objet range ) la valeur old_color que je considère comme vide.
Je suppose que sel . adress est la cellule ou on l'on clique . Aurait on pu écrire ActiveCell.Adress à la place ?
Bon après j'ai compris c'est une inversion de couleur.
C'est surtout l'initialisation que je ne comprends pas . car si old_cell ets la valeur de l'adresse de la cellule sélectionnée dès l'ouverture de la feuille ,ne devrait ce pas être un nom réservé?
Merci de m'avoir consacré de votre temps
Partager