IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Word Discussion :

Problème de lenteur a l'ouverture dû à des liaisons externes


Sujet :

Word

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    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 : 5
    Points
    5
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub AutoOpen()
    ActiveDocument.Fields.Locked = True
    End Sub
    Mais rien ne marche

    Si quelqu'un a la solution, merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    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 !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    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 : 5
    Points
    5
    Par défaut
    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

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    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 : 5
    Points
    5
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
    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

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Une idée en passant.

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    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 : 5
    Points
    5
    Par défaut
    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.

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    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 !

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    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 : 5
    Points
    5
    Par défaut
    Salut,

    Mes fichiers Excels sont aux formats .xlsm

Discussions similaires

  1. [XL-2007] Retrouver des liaisons externes
    Par solorac dans le forum Excel
    Réponses: 4
    Dernier message: 18/02/2014, 11h42
  2. Réponses: 3
    Dernier message: 01/02/2010, 21h52
  3. Problème de protection et d'ouverture des formulaires
    Par moilou2 dans le forum Sécurité
    Réponses: 1
    Dernier message: 28/05/2008, 23h10
  4. Problème de lenteur des requetes
    Par cyberdam dans le forum Installation
    Réponses: 1
    Dernier message: 20/03/2007, 12h25
  5. Optimiser MS SQL2000 car j'ai des problèmes de lenteurs
    Par djavaux dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/04/2004, 11h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo