Mettre un texte variable dans une forme

Sub C_Ajout_Formes()

    Dim Onglet As Variant
    Onglet = ActiveSheet.Range("I2")

    With ActiveSheet
        Set Forme = .Shapes.AddShape(msoShapeRoundedRectangle, 825, 272, 146, 40)
        Forme.Select
        Selection.Formula = "=FICHE!$AD$18"
    End With

End Sub

Bonjour,

Donc je veux insérer dans un onglet une forme via vba dans un onglet et y mettre du texte. Mais le texte fait référence au contenu d'une cellule qui peut être dans différents onglets. Le nom de l'onglet est déclarer en variable dans une cellule et je n'y arrive pas à formuler tout cela!

Dans l'exemple ci-dessous le Fiche! doit donc être variable et doit être remplacé par Onglet (la cellule déclarée pour Onglet contient le nom d'un onglet).

Je vais dire, évidemment bien sûr en voyant la solution, mais je vois vraiment pas ce qu'elle peut être!

Merci pour le coup de main

Bonjour

Il faut travailler par ricochet : la forme doit toujours être associée par un simple égal à la cellule contenant le texte, cellule qui peut être alimentée par une formule ou VBA

Merci Chris mais en code VBA cela donne quoi ? Car je comprends pas ce que veut dire travailler en ricochet....

Bonjour Alias59286, 78Chris,

En retour, en exemple de code pour cela.

Sub AjoutForme()
Dim Onglet As String
'Note: En I2 un nom d'onglet d'une autre feuille existante
Onglet = ActiveSheet.Range("I2") & "!"
With ActiveSheet
Set Forme = .Shapes.AddShape(msoShapeRoundedRectangle, 825, 272, 146, 40)
End With
'Placement de la forme (Haut & Gauche) sur la feuille actuelle
Forme.Select
Forme.Top = 80
Forme.Left = 80
'Propriétés de la forme ajoutée (couleur bleue)
With Selection.ShapeRange.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(50, 220, 250)
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = 0.8
        .Transparency = 0
        .Solid
    End With
'Inscription du texte figurant dans la cellule AD18 de la feuille ciblée
Selection.Formula = Onglet & "$AD$18"
'Feuille actuelle
Range("B1").Select 'Ou tout autre cellule
End Sub

RE

Tu associes la forme à une cellule, A3 par exemple et tu écris

Activesheet.Range("A3").Formula="=FICHE!$AD$18"
Forme.Select
Selection.Formula="=$A$3")

Merci beaucoup, c'est beaucoup plus clair. Je teste cela demain et te fais un retour.

Merci pour le temps passer à solutionner mon problème et bonne soirée.

Bonjour 78Chris,

C'est parfait, cela fonctionne parfaitement. Merci pour ton aide.

Bonjour

Merci du retour

Rechercher des sujets similaires à "mettre texte variable forme"