Macro pour collage spécial image dans Word

Taote

XLDnaute Nouveau
Bonjour le forum,

J'ai bien cherché dans le forum et dans l'aide de VBA, mais je désespère d'arriver à maitriser "l'habillage" des images collées sous Word, pour que les images soient alignées sur le texte au lieu d'être devant le texte :confused: (je pars d'une sélection sous Excel). Et pas moyen d'enregistrer la commande avec l'enregistreur de Macro, car cette option dans le format de l'image est grisée en mode enregistrement de Macro :mad: .

J'arrive à coller des tableaux Excel dans un fichier Word avec les lignes suivantes

Code:
Dim AppWord As Word.Application
Dim DocWord As Word.Document
Set AppWord = New Word.Application
AppWord.Visible = True
Set DocWord = AppWord.Documents.Add
...
Selection.Copy
With AppWord.Selection
    .PasteSpecial DataType:=wdPasteEnhancedMetafile
    .InsertBreak Type:=wdPageBreak
End With

Quelqu'un saurait-il quel paramètre ajouter dans le PasteSpecial pour l'alignement sur le texte?

Et puis j'ai un autre problème avec le fichier Normal.dot... Quand je ferme le fichier Word, j'ai un message d'erreur car le fichier Normal.dot est déjà en cours d'utilisation et puis un deuxième message pour me demander d'enregistrer le nouveau Normal.dot. Comment éviter ces messages?

Merci d'avance
 

tototiti2008

XLDnaute Barbatruc
Re : Macro pour collage spécial image dans Word

Bonjour Taote,

à tester, à la fin du code pour le collage spécial :


Code:
With AppWord.Selection
    .PasteSpecial DataType:=wdPasteEnhancedMetafile, Link:=False, Placement:= _
        wdInLine, DisplayAsIcon:=False
    .InsertBreak Type:=wdPageBreak
End With
 

Taote

XLDnaute Nouveau
Re : Macro pour collage spécial image dans Word

Génial!! :) On a bien des images alignées sur le texte. Merci Tototiti2008 !!

Saurais-tu quoi faire pour le message en fermant Word "Fichier utilisé par un autre utilisateur ou une autre application. (C:\..`\Normal.dot)"
Je fais OK et j'ai un enregistrer sous pour Normal.dot et si j'essaie d'enregistrer, j'ai un message me disant qu'il est lecture seule..
Je suis un peu perdu avec ce Normal.dot :eek:

Merci d'avance
 

Taote

XLDnaute Nouveau
Re : Macro pour collage spécial image dans Word

En fait mon problème de normal.dot se produit quand j'ai déjà un document Word ouvert et je pense que cela vient de l'instruction
Set AppWord = New Word.Application

Si j'enlève le New quand j'ai un document d'ouvert, cela passe.

Maintenant mon problème est que je voudrais que ma macro s'exécute aussi bien quand Word est déjà lancé ou non.

J'ai essayé sans succès le code suivant, c'est-à-dire que j'ai toujours les messages pour enregistrer Normal.dot, que Word soit déjà ouvert ou non. Y'a peut-être plus simple...:confused:
Code:
Dim AppWord As Word.Application
Dim DocWord As Word.Document

On Error GoTo TraiteErreur
Set AppWord = Word.Application
TraiteErreur:
Set AppWord = New Word.Application
On Error GoTo 0

AppWord.Visible = True
Set DocWord = AppWord.Documents.Add
 

tototiti2008

XLDnaute Barbatruc
Re : Macro pour collage spécial image dans Word

Bonjour Taote,

à tester :

Code:
Dim AppWord As Word.Application
Dim DocWord As Word.Document

On Error GoTo TraiteErreur
Set AppWord = Word.Application
On Error GoTo 0
AppWord.Visible = True
Set DocWord = AppWord.Documents.Add
...
Exit Sub
TraiteErreur:
Set AppWord = New Word.Application
resume next
End Sub
 

Taote

XLDnaute Nouveau
Re : Macro pour collage spécial image dans Word

Super merci, je vais tester. Entre temps, je pensais aussi m'orienter vers des boutons d'options (nouveau ou actif) et utiliser if then...

J'ai un autre petit problème, pour insérer du texte dans word juste à l'endroit ou on se trouve dans le fichier. J'ai trouvé dans les Wiki

With wordDoc.Content
.Collapse Direction:=wdCollapseEnd 'derniere ligne du document
.insertBreak Type:=wdLineBreak 'insert saut de ligne
.Text = "Le texte à ajouter"
End With

Mais je n'arrive à pas à utiliser ce code pour ne pas aller en fin de document. Comme je colle une succession de tableaux sous Word, je voudrais entre chaque pouvoir insérer une variable indiquant quelle portion d'Excel est collée...
 

Discussions similaires

Statistiques des forums

Discussions
312 379
Messages
2 087 762
Membres
103 661
dernier inscrit
fcleves