2017-07-26 1 views
0

J'ai le cas suivant:VBA Copie les cellules sélectionnées avec des données (Excel). Collez-les dans une rangée spécifique dans un tableau (Word)

Dans la feuille de calcul Excel, il y a quelques données (noms, email, numéro de téléphone, numéro d'identification, etc.) Les mêmes données doivent être peuplé à une forme Word donnée (il existe une protection sur le fichier word qui permet de remplir plusieurs lignes d'une table). Je voudrais copier les données existantes du fichier Excel et les coller dans le fichier Word au bon endroit (je veux dire la cellule avec le numéro d'identification à copier et à coller dans la rangée avec le numéro d'identification du titre, par exemple). Désolé, c'est une question simple, mais je suis débutant en développement VBA et ma connaissance actuelle est limitée aux actions Excel seulement.

Merci d'avance!

Je commence avec:

'Copy 
Set objSelection = Selection 
Selection.Copy 
'Paste the copied 
Set objTempWorkbook = Excel.Application.Workbooks.Add(1) 
Set objTempWorksheet = objTempWorkbook.Sheets(1) 
'Save the temp HTML 
Set objFileSystem = CreateObject("Scripting.FileSystemObject") 
strTempHTMLFile = objFileSystem.GetSpecialFolder(2).Path & "\Temp for Excel" & Format(Now, "YYYY-MM-DD hh-mm-ss") & ".htm" 
Set objTempHTMLFile = objTempWorkbook.PublishObjects.Add(xlSourceRange, strTempHTMLFile, objTempWorksheet.Name, objTempWorksheet.UsedRange.Address) 
objTempHTMLFile.Publish (True) 

Donc, avec ce code, je sélectionner les cellules Excel avec des données nécessaires, les copier, les coller dans un fichier HTML temporaire. Et voici ma question soulève - comment continuer à dire que je veux étaler les données à des lignes de table spécifiques dans ce fichier Word. Je n'ai pas travaillé avec les options VBA intégrées pour Word. Pourriez-vous s'il vous plaît aider?

+0

Même un débutant doit commencer quelque part. Alors, montrez-nous où vous avez commencé et nous vous aiderons sur votre chemin. – Variatus

+0

Veuillez le coller dans votre question d'origine afin que je n'aie pas besoin de le reformater pour le lire. Je vous remercie. – Variatus

Répondre

0

Votre départ n'est pas le meilleur. Essayez de continuer sur le chemin défini par le code suivant. L'idée est que vous commenciez dans Excel, que vous travailliez dans Excel, et que vous fassiez de l'Excel dans Word. Par conséquent, vous devez avoir accès à la DLL MS Word. À partir d'Excel VBE, sélectionnez Outils -> Références et activez "Bibliothèque d'objets Microsoft Word xx.x". Vous pouvez maintenant déclarer les objets Word et Excel. Excel présumera Excel par défaut. Par conséquent, mentionnez Word dans la déclaration si vous voulez dire Word.

Les premiers objets que vous déclarez sont une application Word et un document à exécuter dans cette application. Ensuite, vous avez besoin d'un nom de fichier pour le document que vous souhaitez ouvrir. Une fois que vous avez le nom du fichier, vous pouvez ouvrir le document (et peut-être le rendre là, invisible en arrière-plan sans jamais montrer son visage, sauf pour l'instant vous voulez probablement le voir).

Vous devez extraire vos données d'Excel dans un format transportable, c'est-à-dire un tableau. Ainsi, vous déclarez la plage Excel à partir de laquelle vous voulez copier et écrivez la valeur de cette plage dans le tableau que vous avez déclaré.

En supposant que vous avez une table dans votre document Word, vous pouvez maintenant commencer à écrire les données du tableau dans la table. Pas clair si vous avez déjà la table ou si vous voulez juste commencer à le faire à ce stade. Une alternative serait de copier la sélection Excel et de la coller dans le document Word en tant que table. L'infrastructure pour toutes ces actions serait la même, c'est-à-dire celle que j'ai esquissée ci-dessus, sauf que vous n'auriez pas besoin du tableau si vous voulez coller la table. Mais laissez-moi vous avertir que coller des tableaux Excel à Word donne beaucoup de mal de tête en transférant ce qui est des formats presque incompatibles. Coller un tableau Excel dans Word nécessite soit d'être très expert en mise en forme de tableau, soit insensible aux points les plus subtils de l'apparence du document.

Quoi qu'il en soit, j'espère que cela vous aidera à démarrer dans la bonne direction.

+0

Le fichier Word contient un modèle/formulaire déjà préparé, formaté en table: 2 colonnes, plusieurs lignes. Sur le côté gauche (1ère colonne) se trouvent les "en-têtes" tels que "Nom", "ID #" et ainsi de suite. Sur le côté droit (2ème colonne) sont des cellules vides. Là, je voudrais remplir les données Excel déjà copiées. En tout cas, merci pour les indices que vous m'avez donnés. Je vais les essayer et je reviendrai avec plus de questions, j'en suis sûr. hahaha. – VSE

+0

C'est le chemin à parcourir! Si ma réponse vous a aidé, veuillez l'accepter. C'est le moyen de me payer pour mon temps. hahaha – Variatus