Ajouter Objets dans Excel via VB6 + paramètrage

sreef Messages postés 13 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 1 avril 2005 - 17 janv. 2005 à 10:28
sreef Messages postés 13 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 1 avril 2005 - 18 janv. 2005 à 11:53
Salut, je programme une Appli qui doit récupérer des objets de types labels et autres objets cercles ellipses.... sur ma form et les redessiner sur Excel.

J'arrive à dessiner un label sur ma feuille mais impossible de la paramètrer (Caption, couleur, police...)

Voici mon code :

FeuilleXL.Shapes.AddFormControl(xlLabel, 10, 10, 50, 20).Select

Merci à l'avance de votre aide.

Sreef

2 réponses

mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 6
17 janv. 2005 à 11:33
J'ai fait ça pour modifier le texte du label :
Dim l_Shape As Shape
Set l_Shape = ActiveSheet.Shapes.AddFormControl(XlFormControl.xlLabel, 10, 10, 20, 20)
l_Shape.TextFrame.Characters.Text = "toto"

Il n'y a a priori pas de propriétés pour la couleur, taille de la police, format ... sur le label, car même en essayant de modifier les propriétés directement depuis Excel, seul le texte est modifiable

Tu peux éventuellement créer une zone de texte à la place de ton label
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 145.5, 210#, _
170.25, 91.5).Select
Selection.Characters.Text = "qsdfdsf"
With Selection.Characters(Start:=1, Length:=7).Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
0
sreef Messages postés 13 Date d'inscription vendredi 13 décembre 2002 Statut Membre Dernière intervention 1 avril 2005
18 janv. 2005 à 11:53
En fait j'ai réussi entre temps merci quand meme
On peut modifier les propriétés (Font, Couleur...)

For i = 0 To Me.Label1.Count - 1
FeuilleXL.Shapes.AddLabel(msoTextOrientationHorizontal, Me.Label1(i).Left, Me.Label1(i).Top, Me.Label1(i).Width, Me.Label1(i).Height).Select
FeuilleXL.Shapes("Zone de texte " & i + 1).Name = "Label" & i + 1
FeuilleXL.Shapes("Label" & i + 1).TextFrame.Characters.Caption = Me.Label1(i).Caption
FeuilleXL.Shapes("Label" & i + 1).TextFrame.Characters.Font.Bold = Me.Label1(i).FontBold
FeuilleXL.Shapes("Label" & i + 1).TextFrame.Characters.Font.Color = Me.Label1(i).ForeColor
FeuilleXL.Shapes("Label" & i + 1).TextFrame.Characters.Font.Italic = Me.Label1(i).FontItalic
FeuilleXL.Shapes("Label" & i + 1).TextFrame.Characters.Font.Name = Me.Label1(i).FontName
FeuilleXL.Shapes("Label" & i + 1).TextFrame.Characters.Font.Size = Me.Label1(i).FontSize
FeuilleXL.Shapes("Label" & i + 1).TextFrame.Characters.Font.Strikethrough = Me.Label1(i).FontStrikethru
FeuilleXL.Shapes("Label" & i + 1).TextFrame.Characters.Font.Underline = Me.Label1(i).FontUnderline
If Me.Label1(i).BackStyle = 1 Then
FeuilleXL.Shapes("Label" & i + 1).Fill.ForeColor.RGB = Me.Label1(i).BackColor
FeuilleXL.Shapes("Label" & i + 1).Fill.Visible = msoTrue
End If
If Me.Label1(i).BorderStyle = 1 Then
FeuilleXL.Shapes("Label" & i + 1).Line.ForeColor.RGB = Me.Label1(i).ForeColor
FeuilleXL.Shapes("Label" & i + 1).Line.Visible = msoTrue
End If


Next i

Par contre j'aurai aimer pouvoir préciser un angle de rotation sans utiliser les API mais je ne sais pas si c'est possible.

Sreef
0