|
Publicité ' | ||||||||||||||||||||||
|
|
#1 | |||
|
Invité de passage
![]() |
Bonjour à tous !
Je viens à vous car je rencontre un problème assez pénible avec un bout de code VBA depuis mon passage de Word 2007 à Word 2010. Sous 2007, le bout de code suivant fonctionnait parfaitement et me permettait d'inclure automatiquement toutes les images d'un document dans ce document (le fichier Word est généré par une autre appli qui enregistre les images séparément). Code :
Citation:
Quelqu'un saurait comment contourner ce problème ou forcer l'objet LinkFormat à accepter les modifs ? D'avance merci ! SP |
|||
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Pierre GONZALEZDéveloppeur Office VBA Inscription : août 2005 Messages : 3 412 ![]() |
Bonsoir.
A mon avis, la propriété LinkFormat renvoie un objet LinkFormat, comme avec 2007. Par contre, plutôt que de vérifier si Shape contient un objet LinkFormat, je pense qu'il serait préférable de vérifier son type. Ainsi, pour les inlineShapes, je remplacerais Code :
If Not oILS.LinkFormat Is Nothing Then Code :
If oILS.Type = wdInlineShapeLinkedPicture Then Cordialement, PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() |
Hello ! Merci pour le coup de main
J'ai déjà essayé cette astuce mais malheureusement cela ne résout rien. En fait l'objet LinkFormat retourné est bien valide, seulement il est retourné en "lecture seule" (alors qu'en 2007 il était en read/write). C'est ce que la doc officielle m'a confirmé d'ailleurs. Du coup je pensais utiliser ce bout de code pour supprimer chaque image et la remplacer par la même "embeddée" mais cela ne semble pas fonctionner non plus : Code :
|
||
|
00
|
|
|
#4 | |||
|
Expert Confirmé Sénior
![]() Pierre GONZALEZDéveloppeur Office VBA Inscription : août 2005 Messages : 3 412 ![]() |
Bonjour
Citation:
. Quelle est cette doc officielle?Ce n'est pas du tout ce que je vois dans la doc Wd 2010 et d'ailleurs j'ai testé le code suivant Code :
Je pense que le pb est ailleurs. Cordialement, PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon |
|||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() |
C'est l'aide en ligne qui m'affirme cela (celle qui s'affiche lorsque je fais F1)...
J'ai essayé ton code (en remplaçant ThisDocument par ActiveDocument parceque ma Sub se trouve dans le Normal.dotm) mais j'obtiens toujours la même erreur |
|
00
|
|
|
#6 | |
|
Expert Confirmé Sénior
![]() Pierre GONZALEZDéveloppeur Office VBA Inscription : août 2005 Messages : 3 412 ![]() |
Selpoivre,
Citation:
C'est quelle ligne du code qui lève une erreur? Cordialement, PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon |
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() |
C'est la ligne suivante qui lève l'erreur "the link does not exist" :
Code :
oILS.LinkFormat.SavePictureWithDocument = True Soit j'ai mal lu toute la journée d'hier soit c'était une typo corrigée entre temps... Encore merci pour ton aide ! |
|
00
|
|
|
#8 | |
|
Expert Confirmé Sénior
![]() Pierre GONZALEZDéveloppeur Office VBA Inscription : août 2005 Messages : 3 412 ![]() |
Re,
Citation:
Code :
If oILS.Type = wdInlineShapeLinkedPicture Then A ce stade, il faut être très précis. Peux-tu donner ton code modifié en précisant la première erreur levée? Cordialement, PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon |
|
|
|
00
|
|
|
#9 | ||
|
Invité de passage
![]() |
voilà mon code :
Code :
Je ne sais pas si cela a une importance mais le code est situé dans le fichier Normal.dotm (je n'ai pas le choix, la méthode devra être appelée pour un paquet de fichiers différents) et le fichier sur lequel je travaille est un .doc (format 2003 normalement donc). |
||
|
00
|
|
|
#10 | ||
|
Expert Confirmé Sénior
![]() Pierre GONZALEZDéveloppeur Office VBA Inscription : août 2005 Messages : 3 412 ![]() |
Re,
Je viens de faire la manip :
Code :
PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon |
||
|
|
00
|
|
|
#11 | ||
|
Invité de passage
![]() |
Hello !
Si je lance ton code sans le retoucher, j'obtient tout d'abords ce message : Citation:
Puis l'erreur suivante se déclenche sur la ligne oILS.LinkFormat.SavePictureWithDocument = True Citation:
|
||
|
00
|
|
|
#12 |
|
Expert Confirmé Sénior
![]() Pierre GONZALEZDéveloppeur Office VBA Inscription : août 2005 Messages : 3 412 ![]() |
Bonjour.
Je trouve ce chemin complet un peu court, pas très complet pour tout dire.Mais tu dis que c'est le bon. Je pense qu'on ne peut plus améliorer le code et que le pb est ailleurs. L'erreur semble indiquer qu'il n'y a rien au bout du lien sur la machine qui travaille. Il faudrait vérifier cela.Si ça ne donne rien, je te propose d'essayer sur une autre machine. PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon |
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() |
Bonjour,
Désolé pour le temps de réponse mais j'ai été pas mal accaparé par autre chose ces jours-ci... J'ai vérifié et il y a bien un fichier à cet emplacement relatif. Malheureusement je n'ai pas d'autre machine avec Word 2010 sous la main pour tester. Je vais essayer de dégager un peu de temps pour monter une VM et tester ça d'ici le début de semaine prochaine. Tu penses que ca pourrait venir d'un problème de paramétrage de Word sinon ? |
|
00
|
|
|
#14 |
|
Expert Confirmé Sénior
![]() Pierre GONZALEZDéveloppeur Office VBA Inscription : août 2005 Messages : 3 412 ![]() |
Bonsoir
En l'occurence, c'est aspect relatif m'inquiète un peu. A ta place j'irais au bout des investigations dans ce sens... Cordialement, PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com