Je suis en train de concevoir un schéma interactif, avec des TextBox connectés à Connectors, et des spinbuttons qui indiquent la "force" des connecteurs. En ce moment je veux seulement obtenir les noms et les valeurs et les connexions des éléments pour une utilisation future. Mon problème est que j'ai chaque spinbutton groupé avec une étiquette (de sorte que dans mon futur code je serai capable d'afficher la valeur de spinbutton), et dans le code suivant je ne peux pas obtenir la valeur du spinbutton. J'ai essayé toutes sortes de choses, comme subshp.OLEFormat.Object.Value
sans succès.Valeur de spinbutton groupée avec label (Excel 2007)
Je colle le code complet pour le contexte, mais mon problème réside dans le code après For Each subshp In shMyShape.GroupItems
. Merci.
Private Sub CB1_Click()
Dim shMyShape, subshp As Shape
Dim i As Long
Dim theSubShapes as String
Worksheets("MySchema").Range("A1:M100").ClearContents
i = 1
For Each shMyShape In Worksheets("MySchema").Shapes
If (shMyShape.Connector) Then
Worksheets("MySchema").Cells(i, 1) = "Shape name: "
Worksheets("MySchema").Cells(i, 2) = shMyShape.Name
Worksheets("MySchema").Cells(i, 3) = "Connector. Comes from " & shMyShape.ConnectorFormat.BeginConnectedShape.TextFrame.Characters.Text & " and goes to " & shMyShape.ConnectorFormat.EndConnectedShape.TextFrame.Characters.Text
i = i + 1
End If
If (shMyShape.Type = msoTextBox) Then
Worksheets("MySchema").Cells(i, 1) = "Shape name: "
Worksheets("MySchema").Cells(i, 2) = shMyShape.Name
Worksheets("MySchema").Cells(i, 3) = "Textbox, and its value is: " & shMyShape.TextFrame.Characters.Text
i = i + 1
End If
If (shMyShape.Type = msoGroup) Then
Worksheets("MySchema").Cells(i, 1) = "Shape name: "
Worksheets("MySchema").Cells(i, 2) = shMyShape.Name
theSubShapes = ""
'here starts my problem
For Each subshp In shMyShape.GroupItems
theSubShapes = theSubShapes & "-" & subshp.Name & "/" 'Here I need to get the spinbutton value (e.g., subshp.Value or subshp.OLEFormat.Object.Value)
Next subshp
Worksheets("MySchema").Cells(i, 3) = theSubShapes
i = i + 1
End If
Next
End Sub
SOLVED. Au cas où quelqu'un arriverait ici, la solution était finalement 'subshp.OLEFormat.Object.Object.Value'. Pas une approche logique dans mon cas, mais juste un essai et une erreur :( – CMArg