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

Macros et VBA Excel Discussion :

liaison encore tjs


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1
    Par défaut liaison encore tjs
    Bonjour à tous ,

    je ne maitrise pas à fond excel
    je viens vers vous car après avoir écumé pas mal de post sur les liaisons je bloque toujours.

    J'ai 3 classeurs excel A et B et C

    Le classeur A est une sorte de menu général composé de boutons pour ouvrir les classeurs B et C

    Tous mes classeurs sont protégés

    B et C ont des liaisons entre eux et j'ai mis une macro en autopen qui les ferme si ceux ci sont ouvert par windows et invite les gens à passer par le menu du classeur A (qui fait disparaitre les barre de commande, empeche la fermeture par la croix....)

    Pour ne pas perturber mes utilisateurs je ne veux pas qu'à l'ouverture de B le message "ce classeur comporte des liaisons....."

    Aussi dans le code A j'ai mis cela pour ouvrir la classeur B est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open Filename:=chemin & "AnalyseSegmentation.xls", UpdateLinks:=true
    Et la j'ai quand même le message.

    J'ai fait le test en mettant à false mais bien sur la les liaisons ne se font pas.
    Aussi j'avais pensé à rajouter un bouton dans B du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
    Mais le problème c'est que j'ai encore A d'ouvert

    J'ai aussi vu un post qui disait de déprotéger toute le feuilles du classeur B pour Remettre à jour les liaisons.
    Mais c'est un échec

    Quelle est la meilleure solution en sachant que je ne peux pas mettre de code dans B en autopen et workbook open vu que j'ouvre en macro à partir d'un autre classeur.

    ça fait 5 heure que j'écume les forums et que j'essaye tout ce qui à été proposé mais je ne retrouve pas mon cas de figure.

    Avez vous une solution?


    Ci dessous des méthodes que j'ai essayé sans succès


    méthode 1 mis dans une macro de module dans le classeur A egalement essayé sur un bouton en test dans B

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
    méthode 2 idem qu'au dessus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'ActiveWorkbook.UpdateLink Name:="G:\Copie de Classeur1.xls", Type:= _
            xlExcelLinks
    méthode 3 (ne fonctionne pas car mon classeur B s'ouvre à partir de A)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub workbook_open()
     
      ' Dim chemin As String
      '  chemin = Workbooks(ActiveWorkbook.Name).Path & "\"
     
     ThisWorkbook.UpdateLinks = xlUpdateLinksAlways
      'ActiveWorkbook.UpdateLink Name:= chemin & "classeurB.xls", Type:= _
            xlExcelLinks
     
    End Sub
    méthode 4 (ne fonctionne pas car mon classeur B s'ouvre à partir de A)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_Open()
    Application.AskToUpdateLinks = False
    ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
    End Sub
    méthode 5 mise sur un bouton dans le classeur B (j'ai un bug du au fait que la macro est perdu entre le classeur A qui est ouvert et B

    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
    Sub MiseAJour()
    Dim wbk As Excel.Workbook
     
    'instanciation
    Set wbk = Application.ThisWorkbook
     
    ' Déprotection
        wbk.Unprotect
        For i = 1 To 5
            wbk.Sheets(i).Activate
            wbk.Sheets(i).Unprotect
        Next i
     
    ' Mise à jour
        wbk.UpdateLink wbk.LinkSources
     
    ' Reprotection
        For i = 1 To 5
            wbk.Sheets(i).Activate
            wbk.Sheets(i).Protect
        Next i
        wbk.Protect
     
    'activation feuille 2
        wbk.Sheets(2).Activate
     
    'libération
    Set wbk = Nothing
     
    End Sub

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Bonjour,
    Il y a un moyen très simple sans VBA, en passant par le menu Edit\Links
    Dans le fenêtre qui s'ouvre le bouton en bas à gauche (en anglais Startup prompt) pemet de choisir entre différentes options tel que: Mettre à jour sans afficher le message.
    Bonne après midi,

Discussions similaires

  1. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  2. Réponses: 17
    Dernier message: 08/03/2006, 10h05
  3. sql encore et tjs... :o(
    Par exyacc dans le forum Bases de données
    Réponses: 18
    Dernier message: 14/09/2005, 14h25
  4. TEdit (encore)
    Par dj.motte dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/12/2002, 19h02
  5. TPalette (encore)
    Par Flipper dans le forum Langage
    Réponses: 3
    Dernier message: 28/11/2002, 23h45

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