Remplissage automatique de Label

L

ly

Guest
Auteur: Eric
Date: 03-07-02 16:23

Bonjour à tous,

J'ai placé dans une feuille un certain nombre de Label. ( Ex: 15 )
J'ai la macro suivante:

Private Sub CommandButton6_Click()
Dim i As Integer
For i = 1 To 15
ActiveSheet.Shapes("Label" & i).Select
Selection.Caption = "ESSAI"
Next i
End Sub

Lorsque je teste, j'ai le message d'erreur d'exécution '438' et
Propriété ou méthode non gérée par cet objet.
Alors que une ligne Label1.Caption = "ESSAI" marche bien

Le nombre de labels à insérer n'est pas fixe, ça peut être 10 ou 50 !
C'est pourquoi je dois passer par une boucle.

Comment faire pour que sur les Labels puissent être remplis ?

Marci d(avance de vos réponses.
 
T

Ti

Guest
Comme ça ça marchera, indépendamment du nombre de label présents sur ta feuille.

Private Sub CommandButton6_Click()
Dim Lbl As OLEObject
For Each Lbl In ActiveSheet.OLEObjects
If Lbl.ProgId = "Forms.Label.1" Then Lbl.Object.Caption = "essai"
Next Lbl
End Sub
 
S

STéphane

Guest
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