Plusieurs types de formats dans une même "shape" depuis un userform.

Oldevi

XLDnaute Nouveau
Bonjour à tous,

J'ai créé un Userform et j'aimerais concaténer les données de plusieurs textbox dans une "shape".

J'y arrive avec le code suivant:

Private Sub enregistrer_Click()

Sheets(TextBox1.Value).Shapes("Shape1").OLEFormat.Object.Text = TextBox2 & vbCrLf & "Chaine1" & TextBox3 & vbCrLf & "Chaine2" & TextBox4

End Sub

Je voudrais pouvoir modifier le format dans la shape pour chaque Textbox.
Par exemple la textbox2 en gras, taille 12 en arial
Chaine1 et TextBox3 à la ligne avec un espace de 1mm en italique, taille 8. etc...

Si vous avez des idées ca m'aiderait beaucoup!

Merci d'avance.

Olivier
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Plusieurs types de formats dans une même "shape" depuis un userform.

Bonsoir,

Les images et shapes

Code:
Sub essai()
 ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 10, 100, 50).Name = "monshape"
 With ActiveSheet.Shapes("monshape")
  .TextFrame.Characters.Text = "ceci est un essai"
  .TextFrame.Characters(Start:=1, Length:=4).Font.ColorIndex = 3
  .Fill.ForeColor.SchemeColor = 13
  .TextFrame.Characters.Font.Size = 8
  .TextFrame.Characters(Start:=12, Length:=6).Font.Name = "Comic Sans Ms"
  .TextFrame.Characters(Start:=12, Length:=6).Font.Size = 12
 End With
End Sub

JB
 

Pièces jointes

  • Classeur1.xls
    30 KB · Affichages: 45
  • Classeur1.xls
    30 KB · Affichages: 43
  • Classeur1.xls
    30 KB · Affichages: 46
Dernière édition:

Gdal

XLDnaute Nouveau
Re : Plusieurs types de formats dans une même "shape" depuis un userform.

Bonsoir,

Voici un début de code:
Code:
Sub test()

    For Each ShapeObj In ActiveSheet.Shapes
    
        If ShapeObj.Name = "TestShape" Then
        
            With ShapeObj
                .Fill.ForeColor.RGB = RGB(255, 0, 0)
                .TextEffect.FontName = "Calibri"
                .TextEffect.FontSize = "14"
                .TextEffect.FontBold = msoTrue
                .TextEffect.FontItalic = msoTrue
            End With
            
        End If
        
    Next ShapeObj
    
End Sub
Pour le reste des propriétés, tu peux:
_ Faire un clique droit sur ShapeObj, Ajouter un espion
_ Mettre un point d'arrêt sur la ligne End If
_ Exécuter le code et sur l'arrêt explorer les propriétés de ShapeObj

Bonne soirée

Gwendal
 

Oldevi

XLDnaute Nouveau
Re : Plusieurs types de formats dans une même "shape" depuis un userform.

Merci beaucoup pour vos réponses.

Mon problème c'est que dans la même shape, j'aimerais plusieurs polices d'écritures différentes issues de TextBox différentes dans la même shape. Pensez vous que ça soit possible.
 

Pierrot93

XLDnaute Barbatruc
Re : Plusieurs types de formats dans une même "shape" depuis un userform.

Bonjour à tous,

regarde le code ci-dessous à adapter à ton projet :
Code:
With ActiveSheet.Shapes(1).TextFrame
    .Characters.Text = TextBox1 & TextBox2 & TextBox3
    With .Characters(1, Len(TextBox1)).Font
        .ColorIndex = 3
        .Size = 6
        .Bold = False
    End With
    With .Characters(Len(TextBox1) + 1, Len(TextBox2)).Font
        .ColorIndex = 5
        .Size = 10
        .Bold = True
    End With
    With .Characters(Len(TextBox1) + Len(TextBox2) + 1, Len(TextBox3)).Font
        .ColorIndex = 7
        .Size = 16
        .Bold = False
    End With
End With

bonne journée
@+
 

Oldevi

XLDnaute Nouveau
Re : Plusieurs types de formats dans une même "shape" depuis un userform.

Ca marche nickel et c'est très propre ! J'aimerais également pouvoir agir sur la mise en forme du paragraphe: espace entre chaque ligne, ajout de bullet points, etc.

Peut-on envisager des lignes de ce type à ajouter dans ton code précédent ? :

.bullet = True
.BeforeTextSpace = 10
.TabBeforetext = 1

Merci beaucoup!
 

Discussions similaires

M
Réponses
0
Affichages
922
Mathou
M

Statistiques des forums

Discussions
312 095
Messages
2 085 250
Membres
102 836
dernier inscrit
Ali Belaachet