1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| Function IsBoutonOK(CellBouton As Range, NomBouton As String) As Byte
'IsBoutonOK renvoit
'0 si la cellule ne comporte pas de bouton
'1 si un bouton est présent mais n'a pas le bon nom
'2 si le bouton porte le bon nom
Dim aShp As Shape
'On boucle sur les shape de la feuille
For Each aShp In CellBouton.Worksheet.Shapes
'On regarde si le shape est bien dans la cellule pointée
If aShp.TopLeftCell Is CellBouton Then
'Le bouton est dans la cellule CellBouton, on vérifie son nom
IsBoutonOK = IIf(aShp.Name <> NomBouton, 1, 2)
Exit For
End If
Next
End Function
Sub test()
Dim xRg As Range
Dim xShape As Shape
Dim xFlag As Byte
On Error Resume Next
'Il vaudrait mieux nomer la feuille plutôt que d'utiliser ActiveSheet
Set xRg = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(0, -3)
On Error GoTo fin
If Not xRg Is Nothing Then
xFlag = IsBoutonOK(xRg, "Image")
If xFlag > 1 Then
'Le bouton est bien dans la cellule est porte le bon nom
ElseIf xflg > 0 Then
'Le bouton porte un nom différent mais est présent dans la cellule
Else
'Pas de bouton dans cette cellule
End If
End If
End Sub |
Partager