Précédent   Forum du club des développeurs et IT Pro > Logiciels > Microsoft Office > Word
Word Forum d'entraide sur le traitement de texte Microsoft Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 04/01/2013, 15h06   #1
jemilie
Invité de passage
 
Homme
Assistant aux utilisateurs
Inscription : janvier 2013
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Santé

Informations forums :
Inscription : janvier 2013
Messages : 8
Points : 4
Points : 4
Par défaut Problème de lenteur a l'ouverture dû à des liaisons externes

Bonjour,

C'est mon premier post donc j'éspère ne pas être trop vague.
Je vous lis déjà depuis un moment et je me suis servi de beaucoup de vos échanges pour apprendre et développer certains de mes outils de travails mais voilà que depuis quelques temps déjà je bloque sur un problème (depuis le passage à Office 2010).

J'ai un rapport modèle WORD qui a l'ouverture déclenche des boîtes de dialogues (via VBA) dont certaines me permettent de récupérer différents tableaux crées à partir de différents Excels dont les noms sont complétement aléatoires (copier coller wdPasteBitmap avec liaison). L'ensemble des codes fonctionne correctement. Mon soucis est que lorsque je réouvre le Word créé, j'ai l'impression qu'il cherche automatiquement à mettre à jour les laisons excels et du coup si les excels sont fermés j'ai une lenteur à l'ouverture proportionnelle au nombre de tableaux liés. (bien plus long que l'exécution de la macro initiale)

J'ai essayé par du code de sauter cette étape :
du genre :
Code :
1
2
3
Sub AutoOpen()
ActiveDocument.Fields.Locked = True
End Sub
Mais rien ne marche

Si quelqu'un a la solution, merci d'avance
jemilie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 15h52   #2
Heureux-oli
Responsable Word


 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 18 890
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 18 890
Points : 39 104
Points : 39 104
Salut,

Te liaisons doivent-elles impérativement être dynamiques ?

Auquel cas, on peut toujours faire un Unlink sur les champs.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 16h12   #3
jemilie
Invité de passage
 
Homme
Assistant aux utilisateurs
Inscription : janvier 2013
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Santé

Informations forums :
Inscription : janvier 2013
Messages : 8
Points : 4
Points : 4
Qu'entends tu par dynamique?
Si tu veux dire par là, liaisons existantes j'ai déjà contourné le problème dans un premier temps en collant mes tableaux excels sans liaisons mais cela reste temporaire j'aimerais pouvoir remettre ces liaisons qui fonctionnait trés bien sous 2003.

Pour la petite histoire, sous 2003 j'utilisais wdpasteoleobject pas de soucis puis au passage sous 2010, le temps d'execution était beaucoup plus lent et en fonction du nombre de tableau la macro buggé, je suis donc passé à un collage métafichier mais là même problème. Dans les deux cas lenteur à l'ouverture du Word en fonction du nombre de tableaux liés.

J'ai remanié et reremanié mes codes pour trouver une solution et j'en suis arrivé au collage wdPasteBitmap avec liaison pour lequel le temps d'execution est trés bon, il me reste donc ce problème de lenteur à l'ouverture.
Si en appliquant unlink, je casse les liaisons, j'aurais l'impression de revenir à la case départ
jemilie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 16h25   #4
jemilie
Invité de passage
 
Homme
Assistant aux utilisateurs
Inscription : janvier 2013
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Santé

Informations forums :
Inscription : janvier 2013
Messages : 8
Points : 4
Points : 4
Mon rmodèle est articulé grossièrement de cette manière.

A l'ouverture du fichier
1er formulaire dans lequel l'utilisateur va renseigner plusieurs textbox (reférence, adresse etc...)
A la fin de ce 1er formulaire, j'enregistre déjà :

Code :
1
2
3
4
5
6
7
ChangeFileOpenDirectory ThisDocument.Path
ActiveDocument.SaveAs2 filename:=refrapport + ".docm", FileFormat:= _
        wdFormatXMLDocumentMacroEnabled, LockComments:=False, Password:="", _
        AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
        :=False, SaveAsAOCELetter:=False, CompatibilityMode:=0
ActiveDocument.Fields.Update

Puis un 2nd formulaire dans lequel l'utilisateur va rechercher les tableurs excels à associer ainsi que les tableaux à insérer, l'insertion se fait de cette manière :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
If UserForm2.CheckBox69 = False Then GoTo suite
If UserForm2.CheckBox69 = True Then
If UserForm2.TextBox2 = "" Then
MsgBox "Veuillez selectionner le fichier excel : excel1", vbExclamation
Exit Sub
End If
End If
 
ActiveDocument.Activate
Wordorigine = ActiveDocument.Name
 
cherche (nomclasseur2)
If ouvert = 0 Then
ChDir nomclasseur2
Workbooks.Open (UserForm2.TextBox2.Value)
End If
 
If UserForm2.CheckBox1 = True Then
If ActiveDocument.Bookmarks.Exists("tableau1") = True Then
resultat = 1
Selection.GoTo What:=wdGoToBookmark, Name:="tableau1"
    With ActiveDocument.Bookmarks
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Windows(UserForm2.TextBox2).Activate
Range("tableau1").Copy
Windows(Wordorigine).Activate
Selection.PasteSpecial Link:=True, DataType:=wdPasteBitmap, Placement:=wdInLine, DisplayAsIcon:=False
Vide_PP
....

Si ca peut aiguiller
jemilie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 19h29   #5
Heureux-oli
Responsable Word


 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 18 890
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 18 890
Points : 39 104
Points : 39 104
Salut,

Une idée en passant.

Peut-être en ajoutant les feuille Excel de cette manière ?

Code :
1
2
3
    Selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.12", FileName _
        :="C:\Users\Olivier-Portable\Documents\Excel\Adresses IP.xlsx", _
        LinkToFile:=True, DisplayAsIcon:=False
Ou encore, mais pas simple, utiliser un champ database pour ajouter le sdonnées, du moins si elles sont dans une feuille.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 21h57   #6
jemilie
Invité de passage
 
Homme
Assistant aux utilisateurs
Inscription : janvier 2013
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Santé

Informations forums :
Inscription : janvier 2013
Messages : 8
Points : 4
Points : 4
Salut,

Merci de ton aide mais près quelques essais, cela ne résouds pas le problème.
(Je ne me suis pas encore lancé dans l'utilisation de champ database, ca m'a l'air trop pour mes petites compétances ...)

Je ne suis pas sur que le problème vienne forcément du code.
Pourquoi Word cherche à ouvrir les sources liées pendant son ouverture???
N'y a t'il pas moyen de le configurer tout simplement.
jemilie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 09h31   #7
Heureux-oli
Responsable Word


 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 18 890
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 18 890
Points : 39 104
Points : 39 104
Salut,

J'ai pas d'idée, n'ayant pas de problème similaire.

Te fichiers Excel de quel format sont-ils ?
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 13h49   #8
jemilie
Invité de passage
 
Homme
Assistant aux utilisateurs
Inscription : janvier 2013
Messages : 8
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Santé

Informations forums :
Inscription : janvier 2013
Messages : 8
Points : 4
Points : 4
Salut,

Mes fichiers Excels sont aux formats .xlsm
jemilie est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h26.


 
 
 
 
Partenaires

Hébergement Web