tiens j'avais pas pensé au progid
j'avais préparé un code pour agir sur les objets ole ou non d'une feuille de calcul, je ne l'ai pas posté parceque je ne me souvenais plus du fil lde discussion le concernant.
attention, à l'heure actuelle ce code cherche & répertorie les objets de la colonne 6
bye
stephane
Sub dds()
'For Each chkb In Worksheets("Feuil1").OLEObjects 'barre commande/contrôles
'If chkb.TopLeftCell.Column = 4 And chkb.Checked = True Then MsgBox "jj"
'Next chkb
'Worksheets(1).OLEObjects("boutonCommande1").Object.Caption = "Exécute-moi"
'Tous les objets OLE étant également membres de la collection Shapes, utilisez celle-ci pour définir les propriétés de plusieurs contrôles. L'exemple suivant montre comment aligner le bord gauche de tous les contrôles de la feuille de calcul 1.
On Error Resume Next
[A1].CurrentRegion.ClearContents
For Each s In Worksheets(1).Shapes
If s.TopLeftCell.Column = 6 Then
If s.Type <> msoOLEControlObject Then
'formulaire
' If s.ControlFormat.Value = xlOn Then
chcb_nom = s.Name
chcb_addr = s.TopLeftCell.Address
chcb_verrouille = s.Locked
' End If
Else
'commandbar /contrôles
chcb_nom = s.DrawingObject.Name
chcb_addr = s.DrawingObject.TopLeftCell.Address
chcb_verrouille = s.DrawingObject.Locked
End If
i = i + 1
Worksheets("Feuil1").Cells(i, 1).Value = chcb_nom
Worksheets("Feuil1").Cells(i, 2).Value = chcb_addr
Worksheets("Feuil1").Cells(i, 3).Value = chcb_verrouille
chcb_nom = ""
chcb_addr = ""
chcb_verrouille = ""
End If
'For Each obj In Worksheets("Feuil1").OLEObjects
'i = i + 1
' Worksheets("Feuil1").Cells(i, 1).Value = obj.Name
' If obj.OLEType = xlOLELink Then
' Worksheets("Feuil1").Cells(i, 2) = "Lié"
' Else
' Worksheets("Feuil1").Cells(i, 2) = "Incorporé"
' End If
' i = i + 1
'Next
'checkbox formulaire ne sont pas des msoolecontrolobject
'If s.Type = msoOLEControlObject Then s.Left = 10
Next
End Sub