Différence entre "Obj". et "Obj.Object"

  • Initiateur de la discussion Initiateur de la discussion Chrige
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Chrige

XLDnaute Occasionnel
Bonjour à tous

Il y a 8 jours, suite à ma demande de simplification de ma macro me permettant de paramétrer les propriétés de boutons de commande, ChTi160 à utiliser ce bout de code :

Code:
            Obj.Top = 40
            Obj.Width = 20
            Obj.Height = 20
            Obj.Left = Gauche
            Obj.Object.BackColor = Clr
            Obj.Object.Caption = ""

- En 1er
j'aimerai comprendre ce qui différencie Obj. de Obj.Object ?
Pourquoi certaines propriétés nécessitent l'un et pas l'autre ?

- En second, j'aimerai savoir si pour gérer toutes les propriétés de boutons
C'est nécessairement l'un de ces 2 codes ou si il y a encore d'autres ?

Si quelqu'un peut m'apporter la réponse ?
Merci d'avance

A+
 
Bonjour à tous.
Un début d'explication donné ici.
Dans une feuille vierge je place juste un bouton ActiveX puis j'exécute ce code :
VB:
Sub test()
Dim Shp As Shape
Set Shp = ActiveSheet.Shapes(1)
MsgBox TypeName(Shp) & vbLf _
   & TypeName(Shp.OLEFormat) & vbLf _
   & TypeName(Shp.OLEFormat.Object) & vbLf _
   & TypeName(Shp.OLEFormat.Object.Object)
End Sub
Ça affiche l'enchainement suivant des types d'objets des propriétés successives :
Shape
OLEFormat
OLEObject
CommandButton

Edit. La raison fondamentale de tous ces objets intermédiaire c'est qu'une feuille de calcul n'est pas un support naturel pour des graphiques, formes dessinées où quoi que ce soit d'autre que des cellules.
Il faut donc que l'objet Worksheet qui la représente soit muni d'un certain nombre de collections contenant un nombre limité d'objets supports à vocations assez générales pouvant supporter à leur tour des objets de plus en plus spécifiques. Un UserForm, lui, contient seulement des Control pouvant directement être des CommandButton. Ce n'est pas le cas d'un Shape.
 
Dernière édition:
Bonsoir le fil, Dranreb

C'est vrai que c'est pas forcément intuitif à coder
exemple
Code:
Sub Test_CommandButtons()
Dim btn As OLEObject, Nom$, shp As Shape
For Each btn In ActiveSheet.OLEObjects
    Nom = btn.name
    If btn.OLEType = xlButtonOnly And InStr(Nom, "CommandButton") > 0 Then
    Set shp = ActiveSheet.Shapes(Nom)
        With shp
            .Height = 15: .Width = 15
            With .OLEFormat.Object.Object
            .BackColor = RGB(160, 78, 56): .Caption = vbNullString
            End With
        End With
    End If
Next
End Sub
 
Bonjour Dranreb, Stapple, Le Forum

Je vous remercie pour ces explications
Je comprends mieux les différences entre OLE, OLE.Object, OLE.Object.Object

Mais malheureusement je ne comprends toujours pas pourquoi je dois utiliser ?
Obj. Pour la propriété .Left
Et
Obj.Object Pour la propriété .BackColor.


A+
 
Bonjour.
Parce que les Left, Top, Width et Height sont des propriété basiques de tout objet dessiné, et sont donc présentes dans l'objet support à caractère général tandis que BackColor est une propriété spécifique de l'objet du type particulier supporté en l'occurrence et désigné par la propriété Object de l'objet support.
Vous pouvez trouver les propriétés et méthodes des objets dans l'explorateur d'objets
 
Dernière édition:
Re,
Merci pour cette précision, maintenant c'est clair pour moi.

En qui concerne ma deuxième question :
- En second, j'aimerai savoir si pour gérer toutes les propriétés de boutons
C'est nécessairement l'un de ces 2 codes ou si il y a encore d'autres ?
Je suppose que la réponse est donc : Oui, nécessairement l'un de ces 2 codes ?

A+
 
Re,
Zut alors, que je suis bête !
Je n'ai pas fait attention
C'est vrai que "Obj" était très orienté Object, d'où ma gaffe 😕
Mais j'aurai du faire attention !!
Cela ne m'étonne pas que je n'avais pas trouvé la réponse sur internet
Maintenant tout est limpide
Merci encore à vous deux
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour