Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Changer la couleur d'un bouton

7 réponses
Avatar
Joël André
Bonsoir,

Sous Excel 2000, je cherche à modifier la couleur d'un bouton par une action
extérieure à la macro qu'il pilote.
Par exemple, ci-dessous, la macro du bouton AfficheFT1 fonctionne très bien
quand on clique dessus.

Private Sub AfficheFT1_Click()
FeuilleRecherchéeT
If Range("A" & 17 + (PointLoupe - 1) * EspaceImage) <> "" Then
AfficheFT1.BackColor = &H8000000F
Else
AfficheFT1.BackColor = &H80000014
End If
End Sub

Par contre lorsque cette même condition est remplie en dehors du clique, je
ne trouve pas le moyen de provoquer le changement de couleur en automatique.
Malgré une recherche sur le net et diverses tentatives infructueuses, je
suis toujours dans l'échec.

Auriez-vous une solution?

Merci beaucoup.

Joël

7 réponses

Avatar
FS
Bonsoir,

Utilise ce genre de code (à adapter à ton classeur)(testé avec Excel 2000) :

'=========Úns le module de la cellule A17 etc.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A17" Then
If Target.Value <> "" Then
CommandButton1.BackColor = &H8000000F
Else
CommandButton1.BackColor = &H80000014
End If
End If
End Sub
'==============================================
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Joël André a écrit :
Bonsoir,

Sous Excel 2000, je cherche à modifier la couleur d'un bouton par une action
extérieure à la macro qu'il pilote.
Par exemple, ci-dessous, la macro du bouton AfficheFT1 fonctionne très bien
quand on clique dessus.

Private Sub AfficheFT1_Click()
FeuilleRecherchéeT
If Range("A" & 17 + (PointLoupe - 1) * EspaceImage) <> "" Then
AfficheFT1.BackColor = &H8000000F
Else
AfficheFT1.BackColor = &H80000014
End If
End Sub

Par contre lorsque cette même condition est remplie en dehors du clique, je
ne trouve pas le moyen de provoquer le changement de couleur en automatique.
Malgré une recherche sur le net et diverses tentatives infructueuses, je
suis toujours dans l'échec.

Auriez-vous une solution?

Merci beaucoup.

Joël




Avatar
Joël André
Merci Frédéric, je vais appliquer dés demain.
Bonsoir.

"FS" a écrit dans le message de news:
%
Bonsoir,

Utilise ce genre de code (à adapter à ton classeur)(testé avec Excel 2000)
:

'=========Úns le module de la cellule A17 etc.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A17" Then
If Target.Value <> "" Then
CommandButton1.BackColor = &H8000000F
Else
CommandButton1.BackColor = &H80000014
End If
End If
End Sub
'============================================== >
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Joël André a écrit :
Bonsoir,

Sous Excel 2000, je cherche à modifier la couleur d'un bouton par une
action extérieure à la macro qu'il pilote.
Par exemple, ci-dessous, la macro du bouton AfficheFT1 fonctionne très
bien quand on clique dessus.

Private Sub AfficheFT1_Click()
FeuilleRecherchéeT
If Range("A" & 17 + (PointLoupe - 1) * EspaceImage) <> "" Then
AfficheFT1.BackColor = &H8000000F
Else
AfficheFT1.BackColor = &H80000014
End If
End Sub

Par contre lorsque cette même condition est remplie en dehors du clique,
je ne trouve pas le moyen de provoquer le changement de couleur en
automatique.
Malgré une recherche sur le net et diverses tentatives infructueuses, je
suis toujours dans l'échec.

Auriez-vous une solution?

Merci beaucoup.

Joël





Avatar
Joël André
Merci Frédéric SIGONNEAU,

La macro fonctionne très, très bien.
Adaptée à la feuille ad hoc, voici ce qui en découle pour les dix boutons
intéressés :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = ("A" & 17 - (PointLoupe > 1) +
(PointLoupe - 1) * EspaceImage) Then
If Target.Value <> "" Then
Select Case PointLoupe
Case 1
AfficheFT1.BackColor = &H8000000F
Case 2
AfficheFT2.BackColor = &H8000000F
Case 3
AfficheFT3.BackColor = &H8000000F
Case 4
AfficheFT4.BackColor = &H8000000F
Case 5
AfficheFT5.BackColor = &H8000000F
Case 6
AfficheFT6.BackColor = &H8000000F
Case 7
AfficheFT7.BackColor = &H8000000F
Case 8
AfficheFT8.BackColor = &H8000000F
Case 9
AfficheFT9.BackColor = &H8000000F
Case 10
AfficheFT10.BackColor = &H8000000F
End Select
Else
Select Case PointLoupe
Case 1
AfficheFT1.BackColor = &H80000014
Case 2
AfficheFT2.BackColor = &H80000014
Case 3
AfficheFT3.BackColor = &H80000014
Case 4
AfficheFT4.BackColor = &H80000014
Case 5
AfficheFT5.BackColor = &H80000014
Case 6
AfficheFT6.BackColor = &H80000014
Case 7
AfficheFT7.BackColor = &H80000014
Case 8
AfficheFT8.BackColor = &H80000014
Case 9
AfficheFT9.BackColor = &H80000014
Case 10
AfficheFT10.BackColor = &H80000014
End Select
End If
End If
End Sub

Pensez-vous qu'il soit possible de simplifier? Là aussi, je me heurte à la
procédure.

Grand merci pour votre temps, votre patience et votre sympathie.

Joël

"Joël André" a écrit dans le message de news:
%
Merci Frédéric, je vais appliquer dés demain.
Bonsoir.

"FS" a écrit dans le message de news:
%
Bonsoir,

Utilise ce genre de code (à adapter à ton classeur)(testé avec Excel
2000) :

'=========Úns le module de la cellule A17 etc.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A17" Then
If Target.Value <> "" Then
CommandButton1.BackColor = &H8000000F
Else
CommandButton1.BackColor = &H80000014
End If
End If
End Sub
'============================================== >>
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Joël André a écrit :
Bonsoir,

Sous Excel 2000, je cherche à modifier la couleur d'un bouton par une
action extérieure à la macro qu'il pilote.
Par exemple, ci-dessous, la macro du bouton AfficheFT1 fonctionne très
bien quand on clique dessus.

Private Sub AfficheFT1_Click()
FeuilleRecherchéeT
If Range("A" & 17 + (PointLoupe - 1) * EspaceImage) <> "" Then
AfficheFT1.BackColor = &H8000000F
Else
AfficheFT1.BackColor = &H80000014
End If
End Sub

Par contre lorsque cette même condition est remplie en dehors du clique,
je ne trouve pas le moyen de provoquer le changement de couleur en
automatique.
Malgré une recherche sur le net et diverses tentatives infructueuses, je
suis toujours dans l'échec.

Auriez-vous une solution?

Merci beaucoup.

Joël









Avatar
FS
Bonjour,

Tu devrais pouvoir simplifier un peu :

'==================== Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = _
("A" & 17 - (PointLoupe > 1) + (PointLoupe - 1) * EspaceImage) Then
If Target.Value <> "" Then
Me.Shapes("AfficheFT" & PointLoupe). _
OLEFormat.Object.Object.BackColor = &H8000000F
Else
Me.Shapes("AfficheFT" & PointLoupe). _
OLEFormat.Object.Object.BackColor = &H80000014
End If
End If
End Sub
'===================
Si PointLoupe peut avoir une valeur en dehors de la plage 1-10, ajoute
un test pour le vérifier.

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Joël André a écrit :
Merci Frédéric SIGONNEAU,

La macro fonctionne très, très bien.
Adaptée à la feuille ad hoc, voici ce qui en découle pour les dix boutons
intéressés :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = ("A" & 17 - (PointLoupe > 1) +
(PointLoupe - 1) * EspaceImage) Then
If Target.Value <> "" Then
Select Case PointLoupe
Case 1
AfficheFT1.BackColor = &H8000000F
Case 2
AfficheFT2.BackColor = &H8000000F
Case 3
AfficheFT3.BackColor = &H8000000F
Case 4
AfficheFT4.BackColor = &H8000000F
Case 5
AfficheFT5.BackColor = &H8000000F
Case 6
AfficheFT6.BackColor = &H8000000F
Case 7
AfficheFT7.BackColor = &H8000000F
Case 8
AfficheFT8.BackColor = &H8000000F
Case 9
AfficheFT9.BackColor = &H8000000F
Case 10
AfficheFT10.BackColor = &H8000000F
End Select
Else
Select Case PointLoupe
Case 1
AfficheFT1.BackColor = &H80000014
Case 2
AfficheFT2.BackColor = &H80000014
Case 3
AfficheFT3.BackColor = &H80000014
Case 4
AfficheFT4.BackColor = &H80000014
Case 5
AfficheFT5.BackColor = &H80000014
Case 6
AfficheFT6.BackColor = &H80000014
Case 7
AfficheFT7.BackColor = &H80000014
Case 8
AfficheFT8.BackColor = &H80000014
Case 9
AfficheFT9.BackColor = &H80000014
Case 10
AfficheFT10.BackColor = &H80000014
End Select
End If
End If
End Sub

Pensez-vous qu'il soit possible de simplifier? Là aussi, je me heurte à la
procédure.

Grand merci pour votre temps, votre patience et votre sympathie.

Joël

"Joël André" a écrit dans le message de news:
%
Merci Frédéric, je vais appliquer dés demain.
Bonsoir.

"FS" a écrit dans le message de news:
%
Bonsoir,

Utilise ce genre de code (à adapter à ton classeur)(testé avec Excel
2000) :

'=========Úns le module de la cellule A17 etc.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A17" Then
If Target.Value <> "" Then
CommandButton1.BackColor = &H8000000F
Else
CommandButton1.BackColor = &H80000014
End If
End If
End Sub
'============================================== >>>
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Joël André a écrit :
Bonsoir,

Sous Excel 2000, je cherche à modifier la couleur d'un bouton par une
action extérieure à la macro qu'il pilote.
Par exemple, ci-dessous, la macro du bouton AfficheFT1 fonctionne très
bien quand on clique dessus.

Private Sub AfficheFT1_Click()
FeuilleRecherchéeT
If Range("A" & 17 + (PointLoupe - 1) * EspaceImage) <> "" Then
AfficheFT1.BackColor = &H8000000F
Else
AfficheFT1.BackColor = &H80000014
End If
End Sub

Par contre lorsque cette même condition est remplie en dehors du clique,
je ne trouve pas le moyen de provoquer le changement de couleur en
automatique.
Malgré une recherche sur le net et diverses tentatives infructueuses, je
suis toujours dans l'échec.

Auriez-vous une solution?

Merci beaucoup.

Joël












Avatar
Joël André
Merci Frédéric SIGONNEAU.

Tout fonctionne à merveille.
Il faut maintenant, pour comprendre, que je décortique les ordres de la
macro. En particulier l'instruction "Me" qui m'est plutôt opaque.
Enfin, bon, avec un peu de patience...

Merci beaucoup Frédéric.

Joël

"FS" a écrit dans le message de news:

Bonjour,

Tu devrais pouvoir simplifier un peu :

'==================== > Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = _
("A" & 17 - (PointLoupe > 1) + (PointLoupe - 1) * EspaceImage) Then
If Target.Value <> "" Then
Me.Shapes("AfficheFT" & PointLoupe). _
OLEFormat.Object.Object.BackColor = &H8000000F
Else
Me.Shapes("AfficheFT" & PointLoupe). _
OLEFormat.Object.Object.BackColor = &H80000014
End If
End If
End Sub
'=================== >
Si PointLoupe peut avoir une valeur en dehors de la plage 1-10, ajoute un
test pour le vérifier.

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Joël André a écrit :
Merci Frédéric SIGONNEAU,

La macro fonctionne très, très bien.
Adaptée à la feuille ad hoc, voici ce qui en découle pour les dix boutons
intéressés :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = ("A" & 17 - (PointLoupe > 1) +
(PointLoupe - 1) * EspaceImage) Then
If Target.Value <> "" Then
Select Case PointLoupe
Case 1
AfficheFT1.BackColor = &H8000000F
Case 2
AfficheFT2.BackColor = &H8000000F
Case 3
AfficheFT3.BackColor = &H8000000F
Case 4
AfficheFT4.BackColor = &H8000000F
Case 5
AfficheFT5.BackColor = &H8000000F
Case 6
AfficheFT6.BackColor = &H8000000F
Case 7
AfficheFT7.BackColor = &H8000000F
Case 8
AfficheFT8.BackColor = &H8000000F
Case 9
AfficheFT9.BackColor = &H8000000F
Case 10
AfficheFT10.BackColor = &H8000000F
End Select
Else
Select Case PointLoupe
Case 1
AfficheFT1.BackColor = &H80000014
Case 2
AfficheFT2.BackColor = &H80000014
Case 3
AfficheFT3.BackColor = &H80000014
Case 4
AfficheFT4.BackColor = &H80000014
Case 5
AfficheFT5.BackColor = &H80000014
Case 6
AfficheFT6.BackColor = &H80000014
Case 7
AfficheFT7.BackColor = &H80000014
Case 8
AfficheFT8.BackColor = &H80000014
Case 9
AfficheFT9.BackColor = &H80000014
Case 10
AfficheFT10.BackColor = &H80000014
End Select
End If
End If
End Sub

Pensez-vous qu'il soit possible de simplifier? Là aussi, je me heurte à
la procédure.

Grand merci pour votre temps, votre patience et votre sympathie.

Joël

"Joël André" a écrit dans le message de news:
%
Merci Frédéric, je vais appliquer dés demain.
Bonsoir.

"FS" a écrit dans le message de news:
%
Bonsoir,

Utilise ce genre de code (à adapter à ton classeur)(testé avec Excel
2000) :

'=========Úns le module de la cellule A17 etc.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A17" Then
If Target.Value <> "" Then
CommandButton1.BackColor = &H8000000F
Else
CommandButton1.BackColor = &H80000014
End If
End If
End Sub
'============================================== >>>>
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Joël André a écrit :
Bonsoir,

Sous Excel 2000, je cherche à modifier la couleur d'un bouton par une
action extérieure à la macro qu'il pilote.
Par exemple, ci-dessous, la macro du bouton AfficheFT1 fonctionne très
bien quand on clique dessus.

Private Sub AfficheFT1_Click()
FeuilleRecherchéeT
If Range("A" & 17 + (PointLoupe - 1) * EspaceImage) <> ""
Then
AfficheFT1.BackColor = &H8000000F
Else
AfficheFT1.BackColor = &H80000014
End If
End Sub

Par contre lorsque cette même condition est remplie en dehors du
clique, je ne trouve pas le moyen de provoquer le changement de
couleur en automatique.
Malgré une recherche sur le net et diverses tentatives infructueuses,
je suis toujours dans l'échec.

Auriez-vous une solution?

Merci beaucoup.

Joël















Avatar
FS
Bonsoir,

Me c'est l'objet dans lequel on se trouve, si je peux dire ça comme ça.
Dans le procédure Worksheet_Change on se trouve dans une feuille de
calcul et Me est donc une forme de raccourci pour désigner cette
feuille-là, qui est le conteneur des boutons qui nous intéressent.

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Joël André a écrit :
Merci Frédéric SIGONNEAU.

Tout fonctionne à merveille.
Il faut maintenant, pour comprendre, que je décortique les ordres de la
macro. En particulier l'instruction "Me" qui m'est plutôt opaque.
Enfin, bon, avec un peu de patience...

Merci beaucoup Frédéric.

Joël

"FS" a écrit dans le message de news:

Bonjour,

Tu devrais pouvoir simplifier un peu :

'==================== >> Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = _
("A" & 17 - (PointLoupe > 1) + (PointLoupe - 1) * EspaceImage) Then
If Target.Value <> "" Then
Me.Shapes("AfficheFT" & PointLoupe). _
OLEFormat.Object.Object.BackColor = &H8000000F
Else
Me.Shapes("AfficheFT" & PointLoupe). _
OLEFormat.Object.Object.BackColor = &H80000014
End If
End If
End Sub
'=================== >>
Si PointLoupe peut avoir une valeur en dehors de la plage 1-10, ajoute un
test pour le vérifier.

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Joël André a écrit :
Merci Frédéric SIGONNEAU,

La macro fonctionne très, très bien.
Adaptée à la feuille ad hoc, voici ce qui en découle pour les dix boutons
intéressés :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = ("A" & 17 - (PointLoupe > 1) +
(PointLoupe - 1) * EspaceImage) Then
If Target.Value <> "" Then
Select Case PointLoupe
Case 1
AfficheFT1.BackColor = &H8000000F
Case 2
AfficheFT2.BackColor = &H8000000F
Case 3
AfficheFT3.BackColor = &H8000000F
Case 4
AfficheFT4.BackColor = &H8000000F
Case 5
AfficheFT5.BackColor = &H8000000F
Case 6
AfficheFT6.BackColor = &H8000000F
Case 7
AfficheFT7.BackColor = &H8000000F
Case 8
AfficheFT8.BackColor = &H8000000F
Case 9
AfficheFT9.BackColor = &H8000000F
Case 10
AfficheFT10.BackColor = &H8000000F
End Select
Else
Select Case PointLoupe
Case 1
AfficheFT1.BackColor = &H80000014
Case 2
AfficheFT2.BackColor = &H80000014
Case 3
AfficheFT3.BackColor = &H80000014
Case 4
AfficheFT4.BackColor = &H80000014
Case 5
AfficheFT5.BackColor = &H80000014
Case 6
AfficheFT6.BackColor = &H80000014
Case 7
AfficheFT7.BackColor = &H80000014
Case 8
AfficheFT8.BackColor = &H80000014
Case 9
AfficheFT9.BackColor = &H80000014
Case 10
AfficheFT10.BackColor = &H80000014
End Select
End If
End If
End Sub

Pensez-vous qu'il soit possible de simplifier? Là aussi, je me heurte à
la procédure.

Grand merci pour votre temps, votre patience et votre sympathie.

Joël

"Joël André" a écrit dans le message de news:
%
Merci Frédéric, je vais appliquer dés demain.
Bonsoir.

"FS" a écrit dans le message de news:
%
Bonsoir,

Utilise ce genre de code (à adapter à ton classeur)(testé avec Excel
2000) :

'=========Úns le module de la cellule A17 etc.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A17" Then
If Target.Value <> "" Then
CommandButton1.BackColor = &H8000000F
Else
CommandButton1.BackColor = &H80000014
End If
End If
End Sub
'============================================== >>>>>
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Joël André a écrit :
Bonsoir,

Sous Excel 2000, je cherche à modifier la couleur d'un bouton par une
action extérieure à la macro qu'il pilote.
Par exemple, ci-dessous, la macro du bouton AfficheFT1 fonctionne très
bien quand on clique dessus.

Private Sub AfficheFT1_Click()
FeuilleRecherchéeT
If Range("A" & 17 + (PointLoupe - 1) * EspaceImage) <> ""
Then
AfficheFT1.BackColor = &H8000000F
Else
AfficheFT1.BackColor = &H80000014
End If
End Sub

Par contre lorsque cette même condition est remplie en dehors du
clique, je ne trouve pas le moyen de provoquer le changement de
couleur en automatique.
Malgré une recherche sur le net et diverses tentatives infructueuses,
je suis toujours dans l'échec.

Auriez-vous une solution?

Merci beaucoup.

Joël
















Avatar
Joël André
Merci Frédéric.
C'est clair, j'ai bien compris.
Amicalement.
Joël

"FS" a écrit dans le message de news:

Bonsoir,

Me c'est l'objet dans lequel on se trouve, si je peux dire ça comme ça.
Dans le procédure Worksheet_Change on se trouve dans une feuille de calcul
et Me est donc une forme de raccourci pour désigner cette feuille-là, qui
est le conteneur des boutons qui nous intéressent.

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Joël André a écrit :
Merci Frédéric SIGONNEAU.

Tout fonctionne à merveille.
Il faut maintenant, pour comprendre, que je décortique les ordres de la
macro. En particulier l'instruction "Me" qui m'est plutôt opaque.
Enfin, bon, avec un peu de patience...

Merci beaucoup Frédéric.

Joël

"FS" a écrit dans le message de news:

Bonjour,

Tu devrais pouvoir simplifier un peu :

'==================== >>> Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = _
("A" & 17 - (PointLoupe > 1) + (PointLoupe - 1) * EspaceImage)
Then
If Target.Value <> "" Then
Me.Shapes("AfficheFT" & PointLoupe). _
OLEFormat.Object.Object.BackColor = &H8000000F
Else
Me.Shapes("AfficheFT" & PointLoupe). _
OLEFormat.Object.Object.BackColor = &H80000014
End If
End If
End Sub
'=================== >>>
Si PointLoupe peut avoir une valeur en dehors de la plage 1-10, ajoute
un test pour le vérifier.

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Joël André a écrit :
Merci Frédéric SIGONNEAU,

La macro fonctionne très, très bien.
Adaptée à la feuille ad hoc, voici ce qui en découle pour les dix
boutons intéressés :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = ("A" & 17 - (PointLoupe > 1) +
(PointLoupe - 1) * EspaceImage) Then
If Target.Value <> "" Then
Select Case PointLoupe
Case 1
AfficheFT1.BackColor = &H8000000F
Case 2
AfficheFT2.BackColor = &H8000000F
Case 3
AfficheFT3.BackColor = &H8000000F
Case 4
AfficheFT4.BackColor = &H8000000F
Case 5
AfficheFT5.BackColor = &H8000000F
Case 6
AfficheFT6.BackColor = &H8000000F
Case 7
AfficheFT7.BackColor = &H8000000F
Case 8
AfficheFT8.BackColor = &H8000000F
Case 9
AfficheFT9.BackColor = &H8000000F
Case 10
AfficheFT10.BackColor = &H8000000F
End Select
Else
Select Case PointLoupe
Case 1
AfficheFT1.BackColor = &H80000014
Case 2
AfficheFT2.BackColor = &H80000014
Case 3
AfficheFT3.BackColor = &H80000014
Case 4
AfficheFT4.BackColor = &H80000014
Case 5
AfficheFT5.BackColor = &H80000014
Case 6
AfficheFT6.BackColor = &H80000014
Case 7
AfficheFT7.BackColor = &H80000014
Case 8
AfficheFT8.BackColor = &H80000014
Case 9
AfficheFT9.BackColor = &H80000014
Case 10
AfficheFT10.BackColor = &H80000014
End Select
End If
End If
End Sub

Pensez-vous qu'il soit possible de simplifier? Là aussi, je me heurte à
la procédure.

Grand merci pour votre temps, votre patience et votre sympathie.

Joël

"Joël André" a écrit dans le message de news:
%
Merci Frédéric, je vais appliquer dés demain.
Bonsoir.

"FS" a écrit dans le message de news:
%
Bonsoir,

Utilise ce genre de code (à adapter à ton classeur)(testé avec Excel
2000) :

'=========Úns le module de la cellule A17 etc.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A17" Then
If Target.Value <> "" Then
CommandButton1.BackColor = &H8000000F
Else
CommandButton1.BackColor = &H80000014
End If
End If
End Sub
'============================================== >>>>>>
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Joël André a écrit :
Bonsoir,

Sous Excel 2000, je cherche à modifier la couleur d'un bouton par
une action extérieure à la macro qu'il pilote.
Par exemple, ci-dessous, la macro du bouton AfficheFT1 fonctionne
très bien quand on clique dessus.

Private Sub AfficheFT1_Click()
FeuilleRecherchéeT
If Range("A" & 17 + (PointLoupe - 1) * EspaceImage) <> ""
Then
AfficheFT1.BackColor = &H8000000F
Else
AfficheFT1.BackColor = &H80000014
End If
End Sub

Par contre lorsque cette même condition est remplie en dehors du
clique, je ne trouve pas le moyen de provoquer le changement de
couleur en automatique.
Malgré une recherche sur le net et diverses tentatives
infructueuses, je suis toujours dans l'échec.

Auriez-vous une solution?

Merci beaucoup.

Joël