Bouton état poussé et dépoussé

Bonjour le forum !

La question du jour :

J'ai essayé de suivre le tuto créer des boutons de Tristan COHENNY, mais je n'y arrive pas et je ne comprend pas pourquoi...

Je pensais pourtant avoir bien suivis et compris les instructions.

Objectif : A chaque clic, la macro rattachée au bouton, changera les 2 propriétés (couleur et effet de biseau) afin de rendre l'état du bouton, de plus le bouton Bascule ayant aussi une cellule lié, on profitera de ce moment pour MàJ la cellule liée.

Voici mon code :

Sub Bouton_basculeA() 'Bouton type Controle ActiveX Bouton à bascule

Dim sh As Shape
Set sh = Shapes("Bouton_bascule")

'Application.ScreenUpdating = False
If sh.ThreeD.BevelTopType <> msoBevelCircle Then 'si bouton non poussé alors format poussé
    'Format bouton en mode poussé
    sh.ThreeD.BevelTopType = msoBevelRelaxedInset 'effet 3d biseau arrondi convexe
    sh.Fill.ForeColor.RGB = RGB(0, 67, 118) 'Shape en Bleu foncé
    Range("CELL_LIEE_BOUT_POUSSOIR").Value = "Bouton poussé" 'Option d'index d'une valeur liée au bouton
Else
    'Format bouton en mode dépoussé
    sh.ThreeD.BevelTopType = msoBevelCircle  'effet 3d biseau bordure marqué
    sh.Fill.ForeColor.RGB = RGB(0, 112, 192) 'Shape en Bleu normal
    Range("CELL_LIEE_BOUT_POUSSOIR").Value = "Bouton non poussé"

End If
'Application.ScreenUpdating = True
MsgBox "Le bouton a été basculé ;-)", vbInformation, "Test"

End Sub

Bon courage ! Merci de votre aide

Bonjour,

Pas vraiment sûr de comprendre toutes tes manipulations ...

Ci-joint ton fichier test avec la macro ajustée ...

Bonjour,

Tu as dû louper des explications :

Sub Bouton_basculeA() 'Bouton type Controle ActiveX Bouton à bascule
    Dim sh As Shape
    Set sh = Worksheets("DATA").Shapes("Bouton_bascule")
    Application.ScreenUpdating = False
    If sh.ThreeD.BevelTopType <> msoBevelCircle Then 'si bouton non poussé alors format poussé
        'Format bouton en mode poussé
        sh.ThreeD.BevelTopType = msoBevelCircle
        sh.Fill.ForeColor.RGB = RGB(0, 67, 118) 'Shape en Bleu foncé
        Range("CELL_LIEE_BOUT_POUSSOIR").Value = "Bouton poussé" 'Option d'index d'une valeur liée au bouton
    Else
        'Format bouton en mode dépoussé
        sh.ThreeD.BevelTopType = msoBevelRelaxedInset
        sh.Fill.ForeColor.RGB = RGB(0, 112, 192) 'Shape en Bleu normal
        Range("CELL_LIEE_BOUT_POUSSOIR").Value = "Bouton non poussé"
    End If
    'MsgBox "Le bouton a été basculé ;-)", vbInformation, "Test"
End Sub

Cordialement.

NB- J'ai désactivé le message pour que tu voies mieux !

Bonjour James, MFerrand

Merci de m'aider !

La macro que m'as envoyé MFerrand fonctionne quand je la lance avec F8 dans le développeur, en revanche, quand je clique dessus cela n'a aucun effet alors que la macro est bien affectée à la forme. (version du fichier 1997-2003)

Auriez-vous une idée de la provenance de ce problème ?

Je ne sais pas tester autrement qu'en cliquant sur le bouton, et ça fonctionne !

Je ne t'ai pas renvoyé que la macro, mais le fichier avec !

Contente -toi de cliquer sur le bouton... Si ça marche on pourra discuter des autres détails, si ça ne marche pas, il va falloir déceler pourquoi dans ta configuration car chez moi ça marche !

Cordialement.

Bonjour,

Ca ne fonctionne pas :

> Si je clique sur le bouton

> Si j'essaye de lancer la macro via Alt+F8

Ca fonctionne

> Si j'utilise le pas à pas détaillé dans t'outils de développement VBA

Qu'est ce qui peux bloquer l'exécution de la macro quand je clique sur cette forme ?

Il se passe quoi quand ça ne fonctionne pas ?

Avec la boîte de dialogue tu ne peux rien voir... Ce qu'il se passe c'est soit le bouton devient plus clair et prend un peu de relief, soit il devient plus foncé et s'aplatit... On parle bien de la même chose ?

Rien d'autre à voir (à part l'inscription en M9 qui change pour jouer le rôle de témoin). Et j'ai désactivé le message parce que justement il empêchait de voir le bouton.

Hello,

J'ai traité pour ma part le cas, dans le thread de suivi du tuto.

J'ai moi aussi eu son bug de lancement de macro.

Aucune macro même du genre, ne lancer qu'une msgbox, ne se lançait malgré l'affectation d'une macro à la forme. Par contre ça marchait de manière indirecte avec un ctrl activex ou par le dev vba.

Pour ma part, j'ai considéré au vu de l'outil de compatibilité que c'était due au fait que ce soit un classeur 97-03, pas trouvé d'autre chose qui pouvait bloquer les macros.

Mais aujourd'hui après retest, l'affectation des macros sur son fichier, marche... Je dirais qu'il faudrait lancer une Màj du pack office et de Windows.

Salut à tous !

Je ne connais pas le tuto d'origine... mais ce que j'ai constaté dans le fichier fourni par Tipsy c'est qu'il y avait inversion dans les commandes alternant la mise en forme du bouton, elle ne pouvait donc pas se faire puisque dans chaque alternative de la condition on lui donnait la forme qu'elle avait déjà... En les remettant à leur place (outre un Shapes ne référant pas à un objet Worksheet qui produisait une erreur) ça débloquait et le changement s'opérait.

Et chez moi elle fonnctionne normalement (sous 2010).

Cordialement.

Bonjour toutes et tous

Coucou M.Ferrand fonctionne également sur Excel 2007 Fr

petite précision sup. : m-à-jour d'Excel 2007 également

crdlt,

André

ztest1

Merci André ! Ça fait déjà quelqu'un d'autre que moi où le fichier fonctionne !

MFerrand,

Quand ça ne fonctionne pas, c'est que je clique sur la flèche et qu'il ne se passe rien du tout, pas de message d'erreur, pas de changement de forme, c'est comme si je n'avais pas cliqué dessus. Le bouton ne devient pas plus foncé et ne s'aplatit pas, il reste en relief avec sa couleur plus clair. J'aimerais qu'il devienne plus foncé avec sa forme aplatit en cliquant dessus.

J'ai deux écrans :

> Ecran de droite le dev VBA

> Ecran de gauche mon fichier excel

Quand je vais sur mon écran de droite et que j'appui sur F8 pour exécuter le code pas à pas dans le dev VBA, la flèche devient foncée dans le classeuret s'aplatit. Ce qui n'est pas le cas quand je clique dessus alors que la macro est bien affectée à cette forme. La macro fonctionne, cliquer sur la forme ne déclenche pas la macro.

La boite de dialogue est désactivée. J'utilise le code que tu m'a fournis avec le classeur que tu as renvoyé donc, en l'espèce, on a exactement le même classeur sous les yeux mis à part que quand vous cliquez sur la flèche elle devient plus foncé et s'aplatit alors que moi non.

L'inversion dans les commandes alternant la mise en forme du bouton a été traitée, le Shapes se réfère désormais à l'objet Worksheet cela ne produit donc plus d'erreur, pourtant, chez moi, le changement ne s'opère pas.

> Le classeur est sous une version 97-03 que je ne peux pas changer car ce n'est pas de mon ressort.

> Avec ce même classeur, sous cette même version, la macro affectée à la flèche fonctionne quand on clique sur cette flèche sous Excel 2010 et Excel 2007. Je suis sous Excel 2016

Si quelqu'un a une idée je suis preneur, merci de vous occuper de ce problème

Si vous abandonnez je n'en voudrais à personne, j'ai une solution de secours au cas où.

J'arrête de vous embêter. Merci à tous d'avoir essayé de m'aider.

J'ai mis la macro dans un classeur Excel 2016 et j'appel la macro de ce classeur, ça fonctionne correctement.

Je vous souhaite une bonne fin de journée, à bientôt !

Merci encore

Bonne continuation... et tant mieux si tu as pu débloquer, parce qu'à distance je ne vois plus grand chose à te proposer, dès lors que ça fonctionne et que je ne peux reproduire le dysfontionnement...

Rechercher des sujets similaires à "bouton etat pousse depousse"