Changer la couleur d'un bouton

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FS
Le #20695031
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




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

"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





Joël André
Le #20698641
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é" %
Merci Frédéric, je vais appliquer dés demain.
Bonsoir.

"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









FS
Le #20700571
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é" %
Merci Frédéric, je vais appliquer dés demain.
Bonsoir.

"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












Joël André
Le #20702611
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"
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é" %
Merci Frédéric, je vais appliquer dés demain.
Bonsoir.

"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















FS
Le #20702861
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"
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é" %
Merci Frédéric, je vais appliquer dés demain.
Bonsoir.

"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
















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

"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"
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é" %
Merci Frédéric, je vais appliquer dés demain.
Bonsoir.

"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



















Publicité
Poster une réponse
Anonyme