Insérer TextBox dans Word, à partir d'Excel (VBA) [Résolu/Fermé]

Signaler
Messages postés
11
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
3 septembre 2014
-
Messages postés
11
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
3 septembre 2014
-
Bonjour à tous,

J'ai déjà été tiré d'affaire quelques fois grâce aux forum et j'espère que vous pourrez à nouveau me dépanner!

Le contexte en quelques mots : j'ai un fichier Excel dont les données sont utilisées dans une présentation à faire régulièrement. La trame de la présentation reste identique et son contenu consiste à :
- Page 1 : appliquer un filtre 1 dans Excel, sélectionner la plage de résultat, Copier, Coller en tant qu'image dans Word sur la page 1;
- Page 2 : appliquer un filtre 2 dans Excel, sélectionner la plage de résultat, Copier, Coller en tant qu'image dans Word sur la page 2, etc...
Pas folichon comme boulot donc j'aimerais automatiser cela mais je bloque rapidement.

J'attaque donc un code VBA que voici:

Sub OuvrirWord()



Application.Calculation = xlCalculationManual '-- Desactive les mises à jours automatiques
Application.ScreenUpdating = False '-- N'affiche pas les actions à l'écran


Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim Textbox As Shape
Dim NomCentrale As String

Set WordApp = CreateObject("Word.Application") '-- ouvre une session Word
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Add '-- crée un nouveau document



Set Textbox = ActiveDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, 50, 50, 100, 200)
'Textbox.TextFrame.TextRange = "VOILA UN TEXT BOX"
'Textbox.TextFrame.TextRange.Font.Color = wdColorBlue
'Textbox.TextFrame.TextRange.Bold = True
'MsgBox "Juste un arrêt pour voir ou est le text box"
'Textbox.Left = 500 'On le déplace..


Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

End Sub

Ce code est supposé : Ouvrir Word, Créer un nouveau document, insérer un Textbox (position et dimensions renseignées au hasard).

Mon problème se trouve au niveau de l'insertion du TextBox : les actions se réalisent correctement, j'ai même mon TextBox qui apparaît mais un message d'erreur apparaît et me bloque dans la macro : "Erreur d'exécution '13' : Incompatibilité de type"

Voyez-vous pourquoi il me bloque à ce stade alors que l'action est belle et bien réalisée? J'ai parcouru quelques forums et je suis incapable de voir mon erreur...

Merci beaucoup pour le temps que vous passerez sur ma problématique et dans l'attente de vous lire, bien cordialement,
Charles

3 réponses

Messages postés
9956
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
4 mai 2021
1 138
Bonjour,
Juste au passage, vous mentionnez l'erreur, mais il serait bien quelle est la ligne du programme surlignée..... ?
Note ou se trouve le code pour récupérer les tableaux sur Excel ?

Salutations.
Le Pingou
Messages postés
24042
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
3 mai 2021
6 755
Bonjour,

Ton textbox n'est pas un Frame.
Avec as object ça passe mais il y a peut-être mieux comme typage.

eric
Messages postés
11
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
3 septembre 2014
1
Bonjour à vous!
Merci pour vos réponses!

Le Pingou,
Il s'agit de la ligne
Set Textbox = ActiveDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, 50, 50, 100, 200)
qui bloque et est surlignée en jaune.

Eriiic,
Effectivement, ce n'est pas l'idéal en Oject mais ça au moins le mérite de fonctionner! :-D

Encore merci à vous et au forum!!!
A très bientôt (mais en tant qu'aide plutôt qu'aidé ;-) )

FrereEjac

PS : Je passe enRésolu