Ajouter Objets dans Excel via VB6 + paramètrage

Signaler
Messages postés
13
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
1 avril 2005
-
Messages postés
13
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
1 avril 2005
-
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

Messages postés
402
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
7 juin 2009
5
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
Messages postés
13
Date d'inscription
vendredi 13 décembre 2002
Statut
Membre
Dernière intervention
1 avril 2005

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