Bonjour à tous,
Vous m'avez déjà appris énormément que ce soit en programmation Word ou Excel malgré mon ignorance et je suis surpris de votre réactivité, je vous remercie infiniment de votre dévotion envers la programmation !
Je cherche à automatiser l'export de tableaux Excel (pouvant être de tailles différentes) de différents onglets : un tableau par onglet, vers un fichier word vierge.
Je recherche principalement à exporter la totalité des tableaux sur un document word vierge nommé "Fiches_sondages_word.docx" pour pouvoir faire un CTRL + A puis couper pour coller sur le fichier destinataire final. Je pense qu'il y a une méthode plus simple sans passer par un "fichier vierge temporaire" mais je pense que c'est le plus simple à faire sachant que le fichier destinataire final a de fortes probabilités de changer de nom...
Pourquoi ?
Parce qu'il est probable qu'il y ait une 60taines d'onglets comportant un tableau précis.. Et que la sélection du tableau, copier en tant qu'image, sélection de la fenêtre word, coller et redimensionner, mettre un saut de page, retourner sur l'excel, changer d'onglet, sélectionner le tableau ..... etc etc... peut être très chronophage et surtout assez simple à automatiser.
Pour cela, j'ai piqué certains morceaux de codes que j'avais déjà programmer mais sur d'autres documents du style word pour du Excel et mes compétences en boucle sont clairement limitées...
Informations :
Mon fichier Excel se nomme "Investigations.xls" et les onglets "Fiches_sondages_S1" pour la 1ère, "Fiches_investigation_S2" pour la 2ème ... etc etc... jusqu'à un nombre variable d'onglets
Mon fichier temporaire est vierge et se nomme "Fiches_sondages_word.docx"
Mon fichier destinataire final lui, sera complété à la main par mon CTRL +A / CTRL + C(ou X) puis CTRL + V de mon fichier temporaire à mon fichier destinataire final
Objectifs :
1) Automatiser la sélection du tableau, même si les dimensions changent, avec un Copier en tant qu'image : DONE
(Merci Menhir car ça marche à la perfection)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim Fin As Long Fin = ActiveSheet.UsedRange.SpecialCells(xlLastCell).Row Range("B2:J" & Fin).CopyPicture Appearance:=xlScreen, Format:=xlPicture
2) Pouvoir exécuter la macro avec uniquement le classeur Excel d'ouvert, que le fichier word temporaire s'ouvre tout seul dès l'exécution de la macro : En cours, j'essaie d'adapter un programme qui marche sur Word mais j'arrive pas à l'appliquer à Excel et j'ai ça pour le moment :
3) Mettre les image en forme sur le Word mais cette étape est le cadet de mes soucis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Sub Macro() Set Wordapp = CreateObject("word.Application") Wordapp.Visible = True Wordapp.Documents.Open FileName:="/Users/aurelienmeriot/Desktop/Fiches_sondages_word.docx" Wordapp.Activate Documents("Investigations").Activate 'Démarrage du C/C de Excel vers Word Worksheets("Fiche-sondage_S1").Activate Dim Fin As Long Fin = ActiveSheet.UsedRange.SpecialCells(xlLastCell).Row 'Sélection du tableau et Copier en tant qu'image Range("B2:J" & Fin).CopyPicture Appearance:=xlScreen, Format:=xlPicture Documents("Fiches_sondages_word").Activate 'Changement de fenêtre pour coller (Excel à Word) Selection.Paste Selection.InsertBreak Type:=wdPageBreak 'Ajout d'un saut de page Documents("Investigations").Activate 'Changement de fênetre (Word à Excel) Worksheets("Fiche-sondage_S2").Activate 'Changement d'onglet Etc...Etc... (boucle) End Sub
Mais une fois de plus, rien ne marche et pour optimiser tout ça il faudrait mettre sous forme de boucle ou de conditions pour pouvoir s'arrêter lorsque le dernier onglet est dépasser ^^'
Je suis très bien conscient que je suis loin d'avoir la réflexion de progra, et que vous avez 10 000 solutions tellement plus simple que la mienne, c'est pour cela que je me tourne vers votre expertise.
Je vous remercie d'avance de votre participation à mon projet.
Partager