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 :

La méthode show de la classe dialog a échouée [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Par défaut La méthode show de la classe dialog a échouée
    Bonjour le forum,

    La mise à jour des liaisons d'un classeur étant assez longue et très occasionelle , j' ai supprimer l'invite des MAJ à l'ouverture du classeur.
    Par contre de temps en temps je modifie la base de données et doit mettre les liaisons à jour par la suite.

    Je cherche a faire apparaitre la boite de dialogue Update link par le code car la boite de dialogue Open link, elle me force à déprotéger toutes mes feuilles (15 en tout)
    hors la ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Dialogs(xlDialogUpdateLink).Show
    me renvoie l'erreur 1004, la méthode show de la classe dialog a échouer.
    les seules autres options que show proposées par excel sont :
    Application
    Créator
    Parents
    pour le moment je me sert du code suivant qui fonctionne mais qui m'oblige à déprotèger toutes mes feuilles :

    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
    Option Explicit
     
    Sub MAJ_link_Dom()
    'MAj manuelle des liaisons
    Dim feuil As Worksheet
     
        Application.ScreenUpdating = False
        For Each feuil In ThisWorkbook.Worksheets
            feuil.Unprotect ("intel")
        Next feuil
     
         ActiveWorkbook.UpdateLink Name:= _
            "C:\Users\Dominique\Documents\1 Dom Perso\Tutoriels XL\Source.xls", Type:= _
            xlExcelLinks
     
        For Each feuil In ThisWorkbook.Worksheets
            feuil.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="intel" _
            , AllowFormattingCells:=True
        Next feuil
     
    End Sub
    Si quelqu'un avait une idée pour faire apparaitre la boite de dialogue Update link ?

    Merci à tous

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 333
    Par défaut
    Bonsoir,
    Tu peux regarder ce lien : http://skp.mvps.org/ppt00029.htm
    Alain

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Par défaut
    Bonjour le Forum,

    Bon voila cette nuit j'ai tester en grandeur réelle au boulot :
    j' utilise mon premier 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
    Option Explicit
     
    Sub MAJ_link_Dom()
    'MAj manuelle des liaisons avec Ctrl+U
    Dim feuil As Worksheet
     
        Application.ScreenUpdating = False
        For Each feuil In ThisWorkbook.Worksheets
            feuil.Unprotect ("intel")
        Next feuil
     
         ActiveWorkbook.UpdateLink Name:= _
            "G:\Gestion bons bleus\BD plan de ligne.xls", Type:= _
            xlExcelLinks
     
        For Each feuil In ThisWorkbook.Worksheets
            feuil.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="intel" _
            , AllowFormattingCells:=True
        Next feuil
      Sheet50.Unprotect ("intel")
      Sheets("Journal").Unprotect ("intel")
    End Sub
    la procédure me prends environ 7 secondes pour les 18 onglets du classeur et j'ai trois classeurs donc c'est correct.

    Dans le lien d' Alain l'option manuelle de la boite de dialogue Open links reste toujours grisée (non accessible ) que ce soit en 2007 à la maison ou en XP au travail,et je n'ais pas réussis à adapter le code du ppt vers excel

    Je marque résolu car mon fichier fonctionne, mais néanmoins la question reste ouverte, ma curiositée n'étant pas satisfaite :

    Pourquoi la méthode show de xlDialogUpdateLink a échouée et quelle méthode doit on utiliser ?

    Peut être tout simplement parce que cette boite de dialogue ne peut apparaitre qu 'a l'ouverture d'un classeur et qu'il est impossible de l'appeller une fois celui-ci ouvert ?

    Merci à tous ceux qui ont passés du temps sur ce post

    Au plaisir

    Dom

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2000] Méthode "Show" de la classe "Dialog" a échoué
    Par Monfy29 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/04/2010, 10h48
  2. [VBA-E] passage d'argument avec la méthode "Show"
    Par JOUBERT dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/03/2006, 13h56
  3. Problème pour appeler une méthode d'une autre classe
    Par tse_tilky_moje_imja dans le forum Général Python
    Réponses: 7
    Dernier message: 03/03/2006, 13h33
  4. [Interface] Appeller toutes les méthodes héritées d'un class
    Par thibaut.d dans le forum Général Java
    Réponses: 4
    Dernier message: 25/01/2005, 08h42
  5. [Reflection] Exécuter une méthode donnée d'une classe
    Par schousso dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 03/06/2004, 10h35

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