Comment insérer la valeur d'une cellule au sein d'un texte avec TextFrame

Bonjour, je cherche à remplacer des textes sur powerpoint avec une automatisation excel vba.

'remplacer le nombre dans la shape avec la valeur de la cellule'

PptShape1.TextFrame.TextRange.text = cellValue

j'avais fait ça pour mettre la valeur d'une cellule dans une zone de texte sur powerpoint.

Comment faire si je veux mettre un texte et la valeur d'une cellule (un chiffre) à la place d'une zone de texte en utilisant la propriété TextFrame.

PptShape2.TextFrame.TextRange.text = "Dont" &cellValue& "chez Amazon"

la ligne au dessus ne marche pas et me mets sur powerpoint que : "Dont chez amazon" comment insérer la valeur de la cellule ? pour avoir "Dont 7 chez Amazon" si cellValue = 7

Merci d'avance pour votre aide

Bonjour carla3111,

Testez avec ce code :

PptShape2.TextFrame.TextRange.Text = "Dont " & cellValue & " chez Amazon"

Assurez-vous que cellValue est bien une variable qui contient la valeur que vous voulez insérer. Si cellValue est une cellule Excel, vous devriez récupérer sa valeur avec cellValue.Value :

PptShape2.TextFrame.TextRange.Text = "Dont " & cellValue.Value & " chez Amazon"

J'espère que cela vous aidera !

Bonjour, sans fichier difficile de savoir d'ou vient "CellValue"

Il semble que le resultat soit nul si le reste s'affiche. La valeur se trouve-t-elle dans une cellule excel ? laquelle ?

Merci, pour vos recommandations je viens de réussir en utilisant CStr :

PptShape2.TextFrame.TextRange.text = "Dont" & " " & CStr(cellValue1) & " " & "chez CAIE"

Seriez-vous comment procéder pour insérer une puce d'écriture au début ?

Merci !

Si vous voulez ajouter une puce standard (•), votre code ressemblerait à ceci :
PptShape2.TextFrame.TextRange.Text = "• Dont " & CStr(cellValue1) & " chez CAIE"

Si vous voulez que la puce soit insérée comme une puce de liste (avec l'indentation appropriée, etc.), vous devrez utiliser les méthodes spécifiques de PowerPoint.

Dans le cas le plus simple, où
PptShape2
contient un seul paragraphe, vous pouvez utiliser le code suivant :
With PptShape2.TextFrame.TextRange
    .Text = "Dont " & CStr(cellValue1) & " chez CAIE"
    .ParagraphFormat.Bullet.Visible = msoTrue
End With

Dans l'idéal la puce que j'aimerais insérer n'est pas la standard comment trouver sa référence vba ?

J'ai ajouté la ligne de code comme vous le suggériez mais j'ai un problème de référence incorrecte ou non qualifiée :

 .ParagraphFormat.Bullet.Visible = msoTrue

Merci

Je m'étais trompé autant pour moi, l'erreur "référence incorrecte ou non qualifiée" se produit parce que msoTrue n'est pas reconnu dans Excel VBA sans référence explicite à la bibliothèque Microsoft Office. Vous pouvez remplacer msoTrue par son équivalent numérique qui est 1

With PptShape2.TextFrame.TextRange
    .Text = "Dont " & CStr(cellValue1) & " chez CAIE"
    .ParagraphFormat.Bullet.Visible = 1
End With

Pour utiliser une puce personnalisée, vous pouvez utiliser la propriété .Bullet.Characters. Cette propriété définit le caractère à utiliser comme puce. Par exemple, pour utiliser l'étoile (*) comme puce, vous pouvez utiliser ce code

With PptShape2.TextFrame.TextRange
    .Text = "Dont " & CStr(cellValue1) & " chez CAIE"
    .ParagraphFormat.Bullet.Visible = 1
    .ParagraphFormat.Bullet.Character = Asc("*")
End With

Si la puce que vous voulez utiliser n'est pas un caractère ASCII standard, vous devrez trouver son code Unicode et utiliser la fonction ChrW à la place de Asc. Par exemple, pour utiliser le caractère "•" (bullet) comme puce, qui a le code Unicode 8226, vous pouvez utiliser ce code :

With PptShape2.TextFrame.TextRange
    .Text = "Dont " & CStr(cellValue1) & " chez CAIE"
    .ParagraphFormat.Bullet.Visible = 1
    .ParagraphFormat.Bullet.Character = ChrW(8226)
End With

Pour trouver le code Unicode d'un caractère, vous pouvez simplement rechercher "[caractère] Unicode" dans votre moteur de recherche. J'espere que cela vous aidera.

Merci beaucoup, je commence à comprendre comment procéder mais je n'arrive pas à trouver l'unicode de la puce que je recherche qui est la 1ère de la troisième ligne que je met en photo, ci-joint.

Merci encore pour le temps que vous prenez,

Carla

1cf7665e 2c73 48f8 a27a c50bbcc10bcf

Bonjour,

Je m'excuse pour la réponse tardive.

image

Si c'est bien cette puce, c'est le caractère 32 de la police Wingdings.
VBA ne gère pas directement les polices Wingdings en utilisant des codes Unicode. Vous devez définir la police de la puce sur Wingdings et utiliser le caractère 32. Vous pouvez le faire de cette manière :

With PptShape2.TextFrame.TextRange
    .Text = "Dont " & CStr(cellValue1) & " chez CAIE"
    With .ParagraphFormat.Bullet
        .Visible = 1
        .Character = 32
        .Font.Name = "Wingdings"
    End With
End With

J'espère que cela vous aidera !

Rechercher des sujets similaires à "comment inserer valeur sein texte textframe"