Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2006, 15h19   #1
Membre du Club
 
Développeur .NET
Inscription : juillet 2003
Messages : 185
Détails du profil
Informations personnelles :
Âge : 31

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : juillet 2003
Messages : 185
Points : 65
Points : 65
Envoyer un message via MSN à hirochirak
Par défaut [VBA Word] Créer un lien vers une zone d'un fichier Excel

Bonjour à tous !

J'essaie de créer un lien dans un fichier word vers un fichier Excel.

En revanche je ne veux pas récupérer tout le fichier Excel mais simplement une zone (De A1 à K49)

J'ai essayer via l'enregistreur de macro et en utilisant la fonction liaison fourni par word mais il ne permet que de lier avec une feuille complête (alors que je souhaiterais juste une certaine zone)

J'avais aussi penser faire un copier coller, mais ca se pilote très mal (pour la partie ouverture du fichier Excel ...)

Enfin bref l'un de vous aurait il une idée pour résoudre ce problème ???

Merci d'avance de votre aide

@+

Hirochirak
__________________
-- Se lance dans l'asp.net 2.0 --

Made In Taïwan
hirochirak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2006, 15h25   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Tu fais un copier / coller de ta zone et tu demandes avec liaison. chaque modif dans ton fichier Excel sera portée dans ton doc word.
F9 comme l'enregistrement de ton fichier ou l'ouverture, mets à jour les liaisons dans Word (si tu n'as pas demandé le contraire dans les options)
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2006, 15h29   #3
Membre du Club
 
Développeur .NET
Inscription : juillet 2003
Messages : 185
Détails du profil
Informations personnelles :
Âge : 31

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : juillet 2003
Messages : 185
Points : 65
Points : 65
Envoyer un message via MSN à hirochirak
Je suis d'accord avec ta solution.

Mon problème est que je dois manipuler ceci via une macro word.

Et pour l'instant je ne sais pas comment automatiser l'ouverture de mon fichier excel, selectionner les éléments que je veux et les envoyer dans le presse papier.

comme je suis obligé de passer par l'explorateur windows pour ouvrir mon fichier Excel, l'enregistreur de macro word ne comprend pas.

@+

Hirochirak
__________________
-- Se lance dans l'asp.net 2.0 --

Made In Taïwan
hirochirak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2006, 15h43   #4
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Regarde , SilkyRoad te donne un cours sur la question
Après, tu dis

Edit
Je viens de m'apercevoir que je te propose l'inverse
Pour piloter Excel depuis Word, tu dois instancier l'appli Excel depuis Word et utiliser cette instance pour désigner ta feuille puis ta plage de cellules.
Mais le principe reste le même. Fais une recherche dans la FAQ. Si j'ai l'adresse, je te la mets
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2006, 16h23   #5
Membre du Club
 
Développeur .NET
Inscription : juillet 2003
Messages : 185
Détails du profil
Informations personnelles :
Âge : 31

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : juillet 2003
Messages : 185
Points : 65
Points : 65
Envoyer un message via MSN à hirochirak
Je pense qu'il doit me manquer une référence dans word.

Je m'explique, je ne peux pas déclarer de variable
Je ne sais si cela vient d'une référence manquante dans mon projet ou si c'est normal

Enfin bref, merci de la référence car je pense qu'une fois ce problème de référence résolu, je vais pouvoir m'éclater avec les macros word (bien sur facon de parler )

@+

Hirochirak
__________________
-- Se lance dans l'asp.net 2.0 --

Made In Taïwan
hirochirak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 11h19   #6
Membre du Club
 
Développeur .NET
Inscription : juillet 2003
Messages : 185
Détails du profil
Informations personnelles :
Âge : 31

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : juillet 2003
Messages : 185
Points : 65
Points : 65
Envoyer un message via MSN à hirochirak
Salut !

Alors le problème du copier coller, c'est que si je conserve le format Excel lors du collage spécial il me manque des informations (apparemment il doit etre limité dans la taille du presse papier) (j'essaierai au format image mais du coup la zone ne devient plus éditable)

J'ai une autre question, est il possible de créer un lien OLE vers mon fichier Excel et de ne séléctionnez qu'une zone dans ma feuille ??? En gros la procédure que je modifie et qui plante faisait ca ...

Merci d'avance de vos réponses

@+

Hirochirak
__________________
-- Se lance dans l'asp.net 2.0 --

Made In Taïwan
hirochirak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 13h42   #7
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
J'ai deux (2) minutes... Je mets ça qui permet d'activer le fichier Excel depuis Word.
Code :
1
2
3
4
5
6
7
    Dim xlApp As Object
    Dim wbk As Object
    Set Activdoc = ActiveDocument
    Set xlApp = CreateObject("excel.application")
    Set wbk = xlApp.Workbooks.Open("d:\médoc\FichierExcel.xls") ' Définit le fichier EXCEL à ouvrir
    xlApp.Visible = True
    wbk.Sheets("Feuil1").Activate
Quant au collage, tu fais un collage spécial (lié ou non) mais non dissocié du texte. Ensuite tu remontes d'un caractère pour sélectionner le tableau, puis tu le formates à la largeur de la mise en page (ici, j'ai mis 18 cm -> 510.25 px
Code :
1
2
3
4
5
    Selection.PasteSpecial Link:=True, DataType:=wdPasteOLEObject, _
              Placement:=wdInLine, DisplayAsIcon:=False
    Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
    Selection.InlineShapes(1).Height = 213.15
    Selection.InlineShapes(1).Width = 510.25
Bye
Bon après-midi
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 12h26   #8
Membre du Club
 
Développeur .NET
Inscription : juillet 2003
Messages : 185
Détails du profil
Informations personnelles :
Âge : 31

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : juillet 2003
Messages : 185
Points : 65
Points : 65
Envoyer un message via MSN à hirochirak
J'ai trouvé d'ou venait le bug

Donc en fait j'ai conserver le code initial qui crée un lien vers une zone Excel !

Le problème venait du lecteur réseau (on pointait sur R: qui lui meme pointe sur mon C

En revanche pour le copier coller entre Excel et Word, j'ai découvert un bug, si le zone copié est trop grande, il manque des informations.

@+

Hirochirak
__________________
-- Se lance dans l'asp.net 2.0 --

Made In Taïwan
hirochirak est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h56.


 
 
 
 
Partenaires

Hébergement Web