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

VBA Word Discussion :

Mise à jour des liaisons


Sujet :

VBA Word

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Mise à jour des liaisons
    Bonjour

    Grâce à vous, j'ai créé une macro permettant à plusieurs utilisateurs ouvrant un fichier Word (en lecture seule) de mettre à jour certain champs avec un même fichier Excel (en lecture seule aussi, mais l'utilisateur peut le "modifier" avec des listes déroulantes).

    Ca marche bien 90% des fois. Mais les 10% restants il y a quelques dysfonctionnements.

    Voila une partie du code

    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
    33
    34
    35
    36
    Sub MAJLiaisons()
     
    'Procédure à suivre si erreur
     
    Dim xlApp As Object
    Dim xlWB As Object
     
    Set xlApp = CreateObject("Excel.Application")
     
    On Error Resume Next
     
    Set xlApp = GetObject(, "Excel.Application")
     
     
    'Génération d'une erreur si le fichier est fermé
     
    Set xlWB = xlApp.Workbooks("Champs automatiques.xls")
     
    On Error GoTo 0 'Permet de ne pas tenir compte d'une erreur éventuelle
     
     
    'Ouvrir le classeur s'il est fermé
     
    If xlWB Is Nothing Then 'Classeur fermé
     
    xlApp.AskToUpdateLinks = False 'Désactivation de la mise à jour automatique
     
    Set xlWB = xlApp.Workbooks.Open("H:\OBLIGS\Breve\Modeles\Champs automatiques.xls", ReadOnly:=True)
     
    xlApp.Visible = True
     
    End If
     
    ActiveDocument.Fields.Update
     
    End sub
    Il arrive que quand Excel soit déjà ouvert, il se ferme systématiquement, donc impossible d'ouvrir le fichier...je ne sais pas pourquoi.

    Sinon parfois le fichier Excel s'ouvre, mais la fenêtre ne s'active pas. Problème pour l'utilisateur qui a déjà plusieurs autres fenêtres ouvertes, il a l'impression qu'il ne se passe rien.

    Autre problème : le fichier Excel ne se lance pas. Word commence à mouliner (la barre de mise à jour se remplit) mais il ne se passe rien.

    Des idées ? Parce que je suis un peu perdu là...

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    J'ai testé cette parti qui fonctionne moyennant quelques modifs sur VBA 2003
    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
    Sub MAJLiaisons()
     
    'Procédure à suivre si erreur
     
    Dim xlApp As Object
    Dim xlWB As Object
     
    Set xlApp = CreateObject("Excel.Application")
     
    'Génération d'une erreur si le fichier est fermé ---> NON !
    'On Error Resume Next
     
    Dim chemin As String
        chemin = "H:\OBLIGS\Breve\Modeles\"
        Set xlWB = xlApp.Workbooks.Open(FileName:=chemin & "Champs automatiques.xls")
     
        'On Error GoTo 0 'Permet de ne pas tenir compte d'une erreur éventuelle
    Avec ton code tu n'aurais pas simplement oublié le chemin ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Je ne suis pas sur de comprendre...tu veux dire que j'aurais du mettre le chemin lors de cette instruction ?

    'Génération d'une erreur si le fichier est fermé

    Set xlWB = xlApp.Workbooks("Champs automatiques.xls")
    Est-ce que je dois aussi mettre le chemin de l'application Excel ?

    L'idée de cette macro est notamment de ne pas ouvrir le fichier Champs automatiques s'il est déjà ouvert.

Discussions similaires

  1. [XL-2002] Mise à jour des liaisons
    Par taratata_69 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/07/2009, 11h02
  2. Réponses: 5
    Dernier message: 21/11/2008, 08h48
  3. Mise à jour des liaisons
    Par shimuno dans le forum VBA Word
    Réponses: 3
    Dernier message: 24/06/2008, 17h09
  4. [VBA-Excel]Mise à jour des liaisons powerpoint
    Par Mando dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/12/2006, 22h51
  5. Mise à jour des liaisons Excel.
    Par franckh99 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/12/2005, 11h51

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