Le 07/07/22 à 02:22, Emile63 a écrit :
> If cell.Locked = True Then
> cell.Font.ColorIndex = 3
> Else
> If cell.Locked = False Then cell.Font.ColorIndex = 10
> End If
Ta macro devrait ressembler à ceci :
A ) Observe bien la ligne qui sélectionne la plage de cellule.
B ) quand tu utilises l'expression ActiveSheet, cela est applicable
à chacune des feuilles de calcul. Si au moment de l'appel, ce
n'est pas la bonne feuille qui est à l'écran, cela va modifier
cette feuille, ce qui n'est pas le résultat attendu.
C ) Si ta macro doit s'appliquer qu'à une seule feuille spécifique,
remplace ActiveSheet par worksheets("Feuil1") ou encore mieux par
le nom de l'objet feuille.
En VBA, chaque feuille est définie comme suit :
Feuil1(Feuil1)
Le premier Feuil1 est le nom de l'objet feuille,
le deuxième Feuill1 entre parenthèses est le nom de l'onglet de la
feuille de calcul.
Il est préférable d'utiliser le nom de l'objet
With Feuil1
.Range("V10:V" & .Range("V" & .Rows.Count).End(xlUp).Row).Select
End with
En utilisant le nom de l'objet, tu as droit à la liste déroulante des
propriétés et méthodes de l'objet.
Tu peux modifier le nom de l'onglet de la feuille de calcul et cela
n'affectera pas le déroulement de ta macro.
La propriété "colorindex" n'est pas nécessairement la même pour tous les
ordinateurs, certains usagers peuvent modifier ces valeurs par défaut.
La présentation peut avoir alors un autre look.
Il existe 8 constantes de couleur : VbWhite, VBBlack, VBgreen, VBmajenta
VBBlue, VBgreen, VBRed, VBYellow
Je t'ai donné un exemple dans ton code avec la propriété "Color"
Tu pourrais aussi utilisé la fonction RGB() pour déterminer la "Color"
Voir l'aide sur RGB.
'--------------------------------
Sub test()
Dim Cell As Range
With ActiveSheet
.Range("V10:V" & .Range("V" & .Rows.Count).End(xlUp).Row).Select
End With
For Each Cell In Selection
If Cell.Locked = True Then
Cell.Font.ColorIndex = 3
'Cell.Font.Color = vbBlue
Else
Cell.Font.ColorIndex = 10
'Cell.Font.Color = vbGreen
End If
Next
MsgBox "Sélection terminée", , "Cellules vérouillées Ctrl+m"
End Sub
'--------------------------------
MichD