Contrôle de word

Bonsoir,

mon code est le suivant:

Sub tabs()

Dim DocWord As Word.Document
Dim AppWord As Word.Application
Set AppWord = New Word.Application
Application.DisplayAlerts = True
AppWord.ShowMe
AppWord.Visible = True
Set DocWord = AppWord.Documents.Open("Chemin\monfichierword.docx")

With Sheets("Global_Mac")
        .Range("A1:K13").Copy
        DocWord.Bookmarks("indices_perf").Range.Delete
        DocWord.Bookmarks("indices_perf").Range.PasteSpecial DataType:=wdPasteEnhancedMetafile

       .Range("N1:AB12").Copy
       DocWord.Bookmarks("commo_index").Range.Delete
       DocWord.Bookmarks("commo_index").Range.PasteSpecial DataType:=wdPasteEnhancedMetafile

       .Range("AD1:AO7").Copy
       DocWord.Bookmarks("taux").Range.Delete
       DocWord.Bookmarks("taux").Range.PasteSpecial DataType:=wdPasteEnhancedMetafile
End With

End sub

Il me permet d'aller chercher des tableaux sous excel et de les insérer dans monfichierword en suivant les signets (opération quotidienne). Or il me manque une ligne de code... mon Range.Delete efface le précédant tableau et au passage supprime une ligne du doc word ce qui fait qu'après plusieurs exécution de ce code, les tableaux se superposent. Il me faudrait donc une instruction pour sauter une ligne après avoir supprimé le tableau précédant voire supprimer le tableau sans supprimer de lignes.

Aussi je m'en remet une énième fois a votre savoir pour fixer ce petit problème.

Maxime

bonjour

je ne sais pas répondre directement ta question, hélas, mais j'ai l'habitude de ce genre de présentation

je fais 2 suggestions :

  • ne pas utiliser Word et faire une belle présentation dans Excel
  • ou alors, dans Word, créer un "objet" dans lequel tu mets un fichier Excel, le fichier Excel pouvant être externe à word comme dans ton cas. Méthode assez pratique et redoutablement efficace.
Dans les 2 cas, il n'y a pas de code (car je suis archi-nul en code )

cependant, sur ce forum, ya des super-bons en code, ils pourront peut-être t'aider si tu veux rester avec du VBA

amicalement

Bonjour,

Après chaque suppression, essaie la méthode "InsertParagraphAfter"

DocWord.Bookmarks("indices_perf").Range.Delete

DocWord.Bookmarks("indices_perf").Range.InsertParagraphAfter

Je ne suis pas un pro de word, mais je pense que cela devrait t'aider.

A+

Benead

Bonjour et merci pour vos réponses.

@ jmd :

Suggestion 1 :

Le doc word sur lequel je travaille fait une dizaines de pages avec principalement du texte et ces trois tableaux donc monter le tout sous excel ne me semble pas approprié pour ce type de document (et ça me donnerai également un peu plus de travail que de simplement ajuster ce code ).

Suggestion 2 :

J'ai déjà essayé en insérant des objets le problème est que d'une part ça alourdissait grandement le fichier et d'autre part mes tableaux changent tous les jours via l'exécution d'une autre procédure donc il m'a paru plus simple d'y adjoindre ce code pour coller mes tableaux.

[b]

@ Benead :[/b]

Je teste lundi et je te reviens, je n'ai pas les fichiers chez moi.

Encore merci.

Bon week end,

Maxime

rem concernant la suggestion 2 :

tu n'es pas obligé d'"incruster" tes tableaux dans Word. Ton word ne contenant pas les tableaux, il n'est donc pas du tout alourdi (j'ai essayé, J'ai incrusté un Excel de 12 Mo et le Word a grossi de 100 ko ). Naturellement, il faut mettre les infos à présenter sur la feuille 1 du xls.

De plus, quand tu mets tes Excel à jour, au travers du lien, word se met à jour tout seul

Bonsoir,

C'était bien cette ligne de code qui me manquait.

Merci à vous deux pour avoir pris le temps de m'aider.

Maxime

Rechercher des sujets similaires à "controle word"