Problème ToggleButton & Me

Y compris Power BI, Power Query et toute autre question en lien avec Excel
D
DorianP
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 20 juin 2019
Version d'Excel : Microsoft Office Pro + 2016 FR
Version de Calc : 1905

Message par DorianP » 21 juin 2019, 18:09

Bonsoir,

Et bien je ne comprends pas le soucis si on utilise qu'une seule fonction qui peut être lancé par tous les ToggleButtons, mais je te fais entièrement confiance à ce sujet là

Je suis donc à l'écoute de ta solution de module de classe ! :)


Merci,
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 421
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 21 juin 2019, 20:22

Re,

Manifestement .. je ne m'exprime pas clairement ... !!!

OnAction va fonctionner ... Tes 120 ToggleButtons peuvent lancer la même macro ...

D'aiileurs rien ne t'empêche de faire un test ...!!!

Bonne Continuation

:btres:
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
D
DorianP
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 20 juin 2019
Version d'Excel : Microsoft Office Pro + 2016 FR
Version de Calc : 1905

Message par DorianP » 24 juin 2019, 10:24

Bonjour,

Alors, j'ai fais des tests en regardant sur Internet des applications similaires, mais je n'arrive pas à faire fonctionner le .OnAction durant la création des ToggleButtons... J'ai tout le temps le message d'erreur "Propriété ou méthode non gérée par cet objet".Je commence à bien sentir mon côté débutant... :bof: Je te partage ce que j'ai fais.

Script pour l'import :

Sub Import_TB()
 
Dim OleObj As Excel.OLEObject
Dim i As Long, col As Long
    
Application.ScreenUpdating = False
    col = 15
    For i = 1 To 5
        Set OleObj = ActiveSheet.OLEObjects.Add( _
            ClassType:="Forms.ToggleButton.1", _
            Left:=Cells(i, col).Left, _
            Top:=Cells(i, col).Top, _
            Width:=Cells(i, col).Width, _
            Height:=Cells(i, col).Height)
        With OleObj
            .LinkedCell = Cells(i, col).Address
            .Object.Value = False
            .Placement = xlMoveAndSize
            .PrintObject = True
            .Object.OnAction = "Action_TB"
        End With
    Next i
Application.ScreenUpdating = True

End Sub

Et le script pour le .OnAction :

Sub Action_TB()

    If ToggleButton.Value = True Then
        
        Range(ToggleButton.LinkedCell).Select
        With Selection.Offset(0, -2).Range("A1:B1").Font
            .Bold = True
            .Name = "Calibri"
            .Size = 24
        End With
        Selection.Offset(0, -2).Range("A1:B1").Interior.Color = RGB(220, 220, 0)
           
    Else

        Range(ToggleButton.LinkedCell).Select
        With Selection.Offset(0, -2).Range("A1:B1").Font
            .Bold = False
            .Name = "Calibri"
            .Size = 11
        End With
        Selection.Offset(0, -2).Range("A1:B1").Interior.Color = RGB(255, 255, 255)
             
    End If

End Sub

Voilà, je suis assez perdu car ça ressemble à ce que j'ai vu sur Internet. J'ai également vu une méthode avec
ActiveSheet.OLEObjects.OnAction = "TB_Action"
mais ça ne fonctionnait pas non plus.


Merci encore une fois pour ton aide.
D
DorianP
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 20 juin 2019
Version d'Excel : Microsoft Office Pro + 2016 FR
Version de Calc : 1905

Message par DorianP » 25 juin 2019, 11:36

Bonjour,

J'ai réessayé plusieurs choses hier, mais en vain... Je suis dépassé, je ne comprends pas comment déclarer le .OnAction...

Il ne me reste que ce soucis à résoudre pour pouvoir finaliser ma macro :bof:

Si quelqu'un peut me donner un dernier coup de pouce, ça serait avec plaisir ! :)

Merci
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 421
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 25 juin 2019, 11:50

Bonjour,

Malheureusement, je n'ai vu ton dernier message ...

Du coup, je viens de tout relire depuis le début ...

Il ne faut pas me demander pourquoi ... mais j'étais convaincu que tu utilisais un contrôle de la famille des ' Forms ' ...

Tous ces contrôles peuvent être pilotés par l'instruction OnAction ...

Mais concrètement tu utilises un ToggleButton qui est un contrôle qui appartient à la famille 'ActiveX ' ...

Or ces contrôles sont de nature différente ... et ont besoin d'un évènement Click pour être déclenché ...

Désolé de t'avoir induit en erreur ...
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
D
DorianP
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 20 juin 2019
Version d'Excel : Microsoft Office Pro + 2016 FR
Version de Calc : 1905

Message par DorianP » 25 juin 2019, 11:57

Bonjour,

Oui j'ai dû utiliser un ActiveX car les Forms n'ont pas la possibilité d'adapter les proportions du boutons à la cellule et de suivre cette dernière...
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 421
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 28 juin 2019, 15:56

Pour ceux qui voudraient suivre ce fil ...

La suite ...

https://forum.excel-pratique.com/viewtopic.php?f=2&t=126413
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message