OVH Cloud OVH Cloud

Togglebutton pas toujours transparent

6 réponses
Avatar
Octave
Bonjour,

J'ai réussi tant bien que mal à paramétrer un "togglebutton" qui agit sur la
couleur de plusieurs cellules (jaune ou pas de couleur : en alternance).
Mon problème est le suivant.:
ce bouton est transparent au départ (backstyle = transparent) mais devient
définitivement opaque lorsque je clique dessus.
Comment faire pour qu'il reste transparent...

Merci d'avance

Octave
______________________________________________________________

NB : Voici la macro qui est associé au bouton (attention, je suis débutant
!)

Private Sub ToggleButton1_Change()
If IsNull(ToggleButton1.Value) Then
Range("Q7:T11").Select
With Selection.Interior
.ColorIndex = xlNone
End With
Range("A6").Select
ElseIf ToggleButton1.Value = False Then
Range("Q10:T11").Select
With Selection.Interior
.ColorIndex = xlNone
End With
Range("A6").Select
ElseIf ToggleButton1.Value = True Then
Range("Q10:T11").Select
With Selection.Interior
.ColorIndex = 36
End With
Range("A6").Select
End If
End Sub

6 réponses

Avatar
isabelle
bonjour Octave,

la seule façon que j'ai trouvé pour ce faire est de mettre la couleur
"fond d'écran" pour les propriétés BackColor et ForeColor et d'ajuster
le ToggleButton à la dimension d'une cellule.

Private Sub ToggleButton1_Change()
Range("A6").Select
v = ToggleButton1.Value
With Range("Q10:T11").Interior
If IsNull(v) Then
.ColorIndex = xlNone
ElseIf v = False Then
.ColorIndex = 4
ElseIf v = True Then
.ColorIndex = 36
End If
End With
End Sub

isabelle


Bonjour,

J'ai réussi tant bien que mal à paramétrer un "togglebutton" qui agit sur la
couleur de plusieurs cellules (jaune ou pas de couleur : en alternance).
Mon problème est le suivant.:
ce bouton est transparent au départ (backstyle = transparent) mais devient
définitivement opaque lorsque je clique dessus.
Comment faire pour qu'il reste transparent...

Merci d'avance

Octave
______________________________________________________________

NB : Voici la macro qui est associé au bouton (attention, je suis débutant
!)

Private Sub ToggleButton1_Change()
If IsNull(ToggleButton1.Value) Then
Range("Q7:T11").Select
With Selection.Interior
.ColorIndex = xlNone
End With
Range("A6").Select
ElseIf ToggleButton1.Value = False Then
Range("Q10:T11").Select
With Selection.Interior
.ColorIndex = xlNone
End With
Range("A6").Select
ElseIf ToggleButton1.Value = True Then
Range("Q10:T11").Select
With Selection.Interior
.ColorIndex = 36
End With
Range("A6").Select
End If
End Sub


Avatar
Octave
Bonjour,

"isabelle" a écrit dans le message de
news:
bonjour Octave,
la seule façon que j'ai trouvé pour ce faire est de mettre la couleur
"fond d'écran" pour les propriétés BackColor et ForeColor et d'ajuster
le ToggleButton à la dimension d'une cellule.


Merci Isabelle pour votre réponse.
Le problème réside dans le fait que j'ai un texte en dessous de ce bouton
qui se modifie en fonction des données rentrées dans ma feuille. C'est pour
cette raison que je souhaite qu'il reste toujours transparent.
Serait ce une impossibilité d'Excel ?

Je reste dans l'attente d'une solution si elle existe. Toutefois, encore une
fois merci.

Octave

Avatar
loko
ZE SOLUTION:

Public Sub transp(ByRef ctrl)
ctrl.Visible = False
ctrl.BackStyle = fmBackStyleOpaque
ctrl.BackStyle = fmBackStyleTransparent
ctrl.Visible = True
End Sub

puis


Private Sub CheckBox1_Change()
transp CheckBox1
End Sub

et ca peut marcher avec tous type des controles.

Private Sub CommandButton1_Click()
transp CommandButton1
End Sub

Private Sub OptionButton1_Click()
transp OptionButton1
End Sub

Private Sub ToggleButton1_Click()
transp ToggleButton1
End Sub

et aussi:


Private Sub TextBox1_GotFocus()
transp TextBox1
End Sub

Private Sub TextBox1_lostFocus()
transp TextBox1
End Sub

ATTENTION:
pr les textbox et cie, faut eviter les ctrl.Visible = False/true (ca t'expulse de la zone d'edition) . Pr les checkbox c'est obligé. et on peut jouer avec la methode change, ou lost/gotfocus si ca pose pb.
c'est du bricolage car y pas la methode refresh ds VBA...

NB: explication probable:
c'est apparement un demi- bug d'excel (faire cohabiter des feuilles Excel avec des controles de type VB n'est pas evident). Car ca le fait pas avec tous les controles: commandbutton, label non. Option, toggle, checkbox, textbox : pb.
car probablement, ca vient de VB: ds VB, label+button se comporte "reellement "de la sorte (mode graphique/transparent). pr les autres, pr donner l'impression d'une transparence, il faut affecter la couleur de fond.
donc pour remettre les pendules à l'heure : obligé de desactiver/reactiver la prop fmBackStyleTransparent .


Bonjour,

"isabelle" a écrit dans le message de
news:
bonjour Octave,
la seule façon que j'ai trouvé pour ce faire est de mettre la couleur
"fond d'écran" pour les propriétés BackColor et ForeColor et d'ajuster
le ToggleButton à la dimension d'une cellule.


Merci Isabelle pour votre réponse.
Le problème réside dans le fait que j'ai un texte en dessous de ce bouton
qui se modifie en fonction des données rentrées dans ma feuille. C'est pour
cette raison que je souhaite qu'il reste toujours transparent.
Serait ce une impossibilité d'Excel ?

Je reste dans l'attente d'une solution si elle existe. Toutefois, encore une
fois merci.

Octave






Avatar
Octave
Bonjour

Merci pour votre réponse.

"loko" a écrit dans le message de
news:
ZE SOLUTION:

Public Sub transp(ByRef ctrl)
ctrl.Visible = False
ctrl.BackStyle = fmBackStyleOpaque
ctrl.BackStyle = fmBackStyleTransparent
ctrl.Visible = True
End Sub


ça fonctionne très bien

Octave

Avatar
isabelle

c'est du bricolage car y pas la methode refresh ds VBA...


en tout les cas, ça fonctionne bien tout de même, merci loko pour cette
info.

isabelle

Avatar
anthone
Octave a écrit le 16/07/2004 à 16h37 :
Bonjour

Merci pour votre réponse.

"loko" a écrit dans le
message de
news:
ZE SOLUTION:

Public Sub transp(ByRef ctrl)
ctrl.Visible = False
ctrl.BackStyle = fmBackStyleOpaque
ctrl.BackStyle = fmBackStyleTransparent
ctrl.Visible = True
End Sub



ça fonctionne très bien

Octave


Je pense avoir un problème connexe :
Voici le contexte de mon problème : je dois dans un masque afficher une image avec une forme non rectangulaire, le reste de l'image doit être transparent (imaginons un cercle mais ce n'est pas une forme géométrique aussi usuelle); je veux donc afficher mon image et avoir le reste transparent si l'image est placé dans un bouton rectangulaire.
Pour ça j'ai donc trouvé le Flash et les boutons activeX que j'ajoute à mon masque sous powerpoint -> l'item est bien au dessus du reste; sauf que ...
... si j'utilise le l'import d'un Flash dans un Slide / Masterpage Powerpoint 2002 / 2003, la transparence ne marche pas.
... de même avec les composants activeX (voie sur laquelle j'aimerai vraiment m'orienter) si je mets BackStyle à Transparent, le fond du bouton n'est pas toujours transparent : en mode presentation la transparence ne s'effetue que lorsque mon Flash effectue ses animations (lorsque je clique sur un bouton mon Flash se déplace)


Au final j'ai le soucis d'un élément dont le BackStyle ne marche pas au repos en mode présentation (peut etre parce qu'au repos le focus est sur les boutons activeX alors que lorsque je m'occupe du Flash je perds le focus??? aucune idée .....)

PLEASE HELP :'(