![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir le Forum
Bonsoir tout le monde Une petite question me tracasse, je m'explique Je voudrais trouver un code VBA, dans le cadre d'une apllication perso) qui me permette d'importer un tableau multicolonnes inséré sur une ou plusieurs pages Word vers un fichier Excel. (Sachant que d'une façon générale, le fichier word possède quelques lignes de présentation, et le tableau qui m'interesse, que je veux importer sous excel suit cette présentation ( voir exemple) Manuelle je sais faire, je sélectionne mon tableau sous Word, puis copier coller sous excel. MAis Mon application en VBA est sous Excel, et je voudrais, à partir d'un bouton mis dans un USF faire cette transformation. PS: suis light de chez light en VBA. Merci par avance pour votre aide Filipus |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
bonsoir Filipus
Cette macro est lancée depuis Excel et permet de coller le tableau de ton document Word dans la cellule A1 . J'ai essayé de faire quelques annotations dans la macro pour t'aider . il te restera à l'adapter à ton projet , notamment l'index de ton tableau ( 2 dans cet exemple ) Sub copieTableauWordVersExcel() 'nécéssite d'activer la référence Microsoft Word xx.x Object Library Dim WordApp As Word.Application Dim WordDoc As Word.Document Dim Fichier As String 'le document Word est supposé fermé avant le lancement de la macro Fichier = "C:\Documents and Settings\michel\essai.doc" 'adapter le chemin Set WordApp = CreateObject("Word.Application")'creation session Word WordApp.Visible = False 'pour que word reste masqué pendant l'opération Set WordDoc = WordApp.Documents.Open(Fichier) 'ouverture du fichier Word WordDoc.Tables(2).Range.Copy 'copie du tableau Word 'dans Word chaque tableau est indexé 'ici l'index est à 2 car le premier index correspond au cadre autour du titre du 'document Word Range("A1").Select ActiveSheet.Paste 'collage des données dans Excel WordDoc.Close False 'ferme le document Word sans sauvegarde WordApp.Quit 'ferme l'application Word End Sub bonne soiree MichelXld |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
Re le Forum
Re Michel Merci pour ta réponse aussi rapide qui me met sur la voie....MAIS.... Après avoir modifié dans ta macro, le chemin de mon fichier Word, et laissé l'index 2 dans l'exemple joint initalement, je lance la macro et j'obtiens un message d'erreur à la ligne: Dim WordApp As WordApplication Le msg d'erreur: Erreur de compliation type défini par utilisateur non défini. Voilà, j'avoue que je suis incapable de résoudre cela. A titre indicatif, je suis sous XP familial et Office 2002. En tout état de cause Merci pour ton aide, et bravo à ceux qui animent ce forum. Filipus |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
rebonsoir Filipus
as tu préalablement activé la référence Microsoft Word 10.0 Object Library ? dans visual Basic Editor (Alt F11) : le menu Outils , Références dans la boite de dialogue qui s'affiche tu coches cette référence et tu cliques sur le bouton OK bonne soirée MichelXld |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
Re Michel
EUREKA Ca marche En fait, je voyais Micrososft Office 10.0....... coché, et j'ai confondu avec Word.....qui est plus bas dans la liste. Ton aide est fabuleuse pour moi, et ca marche impeccable. Maintenant il me reste, pour le fun, a trouver une petite astuce, car en fait le fichier, ici essai.doc peut s'appeler dupont.doc, Martin.doc.... Est-il possible de dire à la macro si à tel endroit il y a un - ou plusieurs - fichiers.doc, les importer dans un ou plusieur fichier excel. C'est peut être un peu trop demander, mais bon, c'est peut être plus simple que ce que je m'imagine. En tout état de cause, je te remercie Michel pour cette aide précieuse. A bientôt peut-être Filipus |
|
|
#6 (permalink) |
|
Guest
Messages: n/a
|
bonjour Filipus
si tu souhaites choisir le document Word , tu peux tester cette nouvelle version . la boite de dialogue qui s'afficher permet de sélectionner un document dans le répertoire de ton choix Sub copieTableauWordVersExcel_V02() 'nécéssite d'activer la référence Microsoft Word xx.x Object Library Dim WordApp As Word.Application Dim WordDoc As Word.Document Dim Fichier As Variant 'affichage boite de dialogue pour choisir un document Word Fichier = Application.GetOpenFilename("Text Files (*.doc*), *.doc*") If Fichier = False Then Exit Sub 'le document Word est supposé fermé avant le lancement de la macro Set WordApp = CreateObject("Word.Application") WordApp.Visible = False 'pour que word reste masqué pendant l'opération Set WordDoc = WordApp.Documents.Open(Fichier) 'ouverture du fichier Word If WordDoc.Tables.Count < 2 Then 'verifie si le document possede bien le tableau WordDoc.Close False WordApp.Quit MsgBox "Le document sélectionné : " & Chr(10) & Chr(10) & _ Fichier & Chr(10) & Chr(10) & "ne posséde pas le tableau spécifié", , "Message" Exit Sub End If WordDoc.Tables(2).Range.Copy 'copie du tableau Word 'dans Word chaque tableau est indexé 'ici l'index est à 2 car le premier index correspond au cadre autour du titre du 'document Word Range("A1").Select ActiveSheet.Paste 'collage des données dans Excel WordDoc.Close False 'ferme le document Word sans sauvegarde WordApp.Quit 'ferme l'application Word End Sub bonne journée MichelXld |
|
|
#7 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir tout le Forum
Bonsoir Michel Je viens de découvrir ta réponse. GENIAL, ca marche super bien. Si j'osais, j'abuserais en demandant si l'enregistrement du fichier Word dans excel peut se faire dans un fichier autre que celui à partir duquel je lance la macro (qui me sert juste de présentation où j'ai mon Userform avec menu..) Il pourrait s'agir d'un fichier excel dans un dossier prédéfini dans la macro. Merci pour ta gentillesse et pour ton aide qui me fait faire un bon en avantn et gagner beaucoup de temps. Bonne soirée à tous Filipus |
|
|
#8 (permalink) |
|
Guest
Messages: n/a
|
Bonsoir tout le monde
Bonsoir Michel Grace à ton Aide Michel tout marche à merveille. Mais j'ai constaté à l'usage que parfois le format des tableaux Word, différe d'un document à l'autre, ce qui à l'importation sous excel me pose problème. Manuellement, si je sélectionne le tableau à partir de la deuxième ligne, je n'ai plus de problème. Il me reste à ajouter une ligne de titres. Donc j'aimerais importer le tableau de Word, en commençant à la deuxième ligne. Et la je ne sais comment faire. Si quelqu'un à une idée, merci. Bonne soirée à tous. Filipus |
| ANNONCES | |
| Liens sociaux |
| Outils de la discussion | |
|
|