Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Texte dans une forme libre


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Texte dans une forme libre
    Bonjour,

    Je cherche à insérer du texte dans une forme créée en dessin vectoriel, donc pas ne forme standard. Pour cela Excel ne le permet pas en utilisation normale (lorsque l'on clique sur la forme, "Modifier le texte" est grisé et non accessible.

    Voici mon code :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub TexteDansFormeLibre()
     
    Sheets("Visuel").Activate
        ActiveSheet.Shapes("F_3800").Select
        Selection.Characters.Text = "toto"
        With Selection.Font
            .Name = "Arial"
            .FontStyle = "Normal"
            .Size = 10
            .Underline = xlUnderlineStyleNone
            .ColorIndex = xlAutomatic
        End With
     
    End Sub

    La macro bloque sur Selection.Characters.Text

    Merci par avance pour votre aide.

    Eric

  2. #2
    Expert éminent
    Bonjour,

    Ce n'est à priori pas possible. Quand tu fait clic droit sur la forme, le menu "Modifier le texte" n'existe pas contrairement au formes prédéfinies.

  3. #3
    Membre chevronné
    Bonsoir,

    Une fonction perso qui crée un shape avec le texte.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    =AfficheTexte($D$13:$D$16;D13;"coucou";40;30)



    Boisgontier

  4. #4
    Invité
    Invité(e)
    Salut,


    'Modifier le texte' apparait dans le menu contextuel.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ' 4 Solutions.
    Sub Macro1()
        With Me.Shapes.Range(Array("Rounded Rectangle 1"))(1)
            .TextFrame2.TextRange.Characters.Text = "dfghjk5"
            .OLEFormat.Object.Text = "dfghjk5"
            .DrawingObject.Text = "dfghjk5"
            .DrawingObject.Characters.Text = "dfghjk5"
        End With
    End Sub

    Si c'est un problème de version, OLEFormat.Object.Text devrait fonctionner je pense.

###raw>template_hook.ano_emploi###