Insérer TextBox dans Word, à partir d'Excel (VBA)

Résolu/Fermé
FrereEjac Messages postés 11 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 3 septembre 2014 - 2 sept. 2014 à 17:52
FrereEjac Messages postés 11 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 3 septembre 2014 - 3 sept. 2014 à 13:36
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
A voir également:

3 réponses

Le Pingou Messages postés 12044 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 25 avril 2024 1 426
Modifié par Le Pingou le 2/09/2014 à 22:52
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
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
3 sept. 2014 à 00:54
Bonjour,

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

eric
0
FrereEjac Messages postés 11 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 3 septembre 2014 1
3 sept. 2014 à 13:36
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
0