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 :

valeur de DisplayAlerts


Sujet :

Macros et VBA Excel

  1. #1
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Par défaut valeur de DisplayAlerts
    Bonjour,

    j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.DisplayAlerts = False
    pour ne pas avoir une fenêtre qui s'ouvre dans mon petit programme mais je découvre avec fureur que si une réponse est nécessaire, Microsoft Excel utilise systématiquement la réponse par défaut.

    La fenêtre me demande si je suis sûr de ma source web mais la réponse par défaut est non. Comment faire pour que cela soit OUI qui soit pris en compte ?

    Merci.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    J'ai bien ma petite idée là-dessus mais prenons les choses dans l'ordre sinon on ne va pas avancer.

    Quelle est la "fonction" ou le bout de code ouvrant cette fenêtre ? Par exemple, vient-elle d'un SaveAs ?

  3. #3
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Par défaut
    que de suspens

    Je créé, via une tierce application, des fichiers HTML avec des extensions XLS. Lorsque je les ouvre j'ai une fenêtre me demandant de confirmer les liaisons car chaque onglet est une feuille HTML. La valeur par défaut est Non et par conséquent, le fichier contient les onglets mais vide.

    Cela rejoint mon post

    http://www.developpez.net/forums/d73...ment-fichiers/

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    Application.DisplayAlerts (utilisé dans VBA/Excel) ne gère que les affichages de Excel, bien évidemment.

  5. #5
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Par défaut
    C'est une boîte Excel il me semble. Quand je l'utilise, les boîtes n'apparaissent pas mais la valeur par défaut dans celle-ci est NON au lieu de OUI. Donc ca fonctionne quelque peu.

    Avez-vous une solution de contournement dans ce cas ?

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Ah...

    le beurre et l'argent du beurre...

    Bon ... on va essayer (mais fais vite pour me répondre car je commence à sentit le sommeil et des frissons...).

    enlève le DisplayAlerts = False (de sorte à voir ta boîte) et dis-moi l'ordre des boutons (tous) qu'elle montre (exemple : 1 OUI - 2 NON ) de gauche à droite.
    Et précise moi lequel a le focus.

    Edit :
    Je crois comprendre que tu es allé dormir
    A demain, donc (je vais en faire autant !)

  7. #7
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Par défaut
    gagné

    la boîte donne justement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Microsoft Excel
    Si vous êtes sûr de cette page Web, cliquez sur oui
    
    Oui   Non  Annuler

    Le focus est donc sur "Non" ce qui est ennuyeux puisque le displayAlert prend ce "Non" par défaut.

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    Mince, au temps pour moi, datametric

    Tout d'un coup, je n'ai plus d'idée sur le sujet Au début, je pensais à un post sur le forum qui faisait référence au même problême... à quelques détails près.

    Désolé

    PS : au cas où, cela n'arrive-t-il que quand tu ouvres ton fichier ?

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bon, 3 choses !

    1) Je ne suis pas si bête !

    2) Oui, ça ne peut arriver que quand tu ouvres ton fichier.

    3) Je te mets un petit copié/collé de l'aide quand tu tapes Tu vas voir, tu vas aimer. Alors, voilà ce qu'on a pour la méthode Open

    expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
    Je te propose accessoirement de t'attarder sur le paramètre UpdateLinks :

    UpdateLinks Argument de type Variant facultatif. Spécifie la façon dont les liens du fichier sont mis à jour. Si vous ne spécifiez pas cet argument, l'utilisateur est invité à indiquer comment les liens doivent être mis à jour. Dans le cas contraire, cet argument a l'une des valeurs répertoriées dans le tableau suivant.

    Valeur Signification
    0 Ne met à jour aucune référence
    1 Met à jour des références externes mais pas des références distantes
    2 Met à jour des références distantes mais pas des références externes
    3 Met à jour des références distantes et des références externes

    Si Microsoft Excel ouvre un fichier au format WKS, WK1 ou WK3 et si l'argument UpdateLinks a la valeur 2, Microsoft Excel génère des graphiques à partir des diagrammes attachés au fichier. Si l'argument a la valeur 0, aucun graphique n'est créé.
    Mamamia, ne serait-ce pas la solution à ton problème ? Allez, va donc mettre un petit "3" dans les arguments de ta méthode

    Bonne chance pour la suite !

  10. #10
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Par défaut
    Effectivement c'est ce que je fais j'y avais pensé. Mais cela n'empêche pas la boîte d'apparaître.

    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
        Do While Fich1 <> ""
     
        Complet1 = Chemin1 & Fich1
        Complet2 = Chemin2 & Fich1
     
        'Application.DisplayAlerts = False
        'Application.ScreenUpdating = False
     
        Workbooks.Open Complet1, 3
        ActiveWorkbook.SaveAs Complet2, xlExcel9795
     
        Workbooks.Close
     
        Fich1 = Dir()
     
        Loop
    J'ai voulu essayé Application.AsktoUpdate = False mais il ne connaît pas (Erreur 438). Je ne sais pas pourquoi non plus.

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bon, ben on y arrive je pense. Teste ça pour voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.UpdateLink
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.UpdateLinks
    De plus, jette un oeil par ici : http://msdn.microsoft.com/en-us/libr...ffice.11).aspx. Regarde ce que le UpdateState donne comme résultat.

    On doit bien pouvoir la retrouver cette méthode !!!

  12. #12
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Re coucou...
    montre-moi (dans ton code précédent) quelle est la dernière ligne exécutée juste avant l'apparition de ta boîte de message.
    (en d'autres termes : intercale une ligne commenbtée disant ' c'est ici...)
    En n'utilisant bien évidemment pas displayalerts = False, hein ...
    Je vais lui jouer un tour ucfoutien....

    Commence par essayer ceci :

    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
    Do While Fich1 <> ""
     
        Complet1 = Chemin1 & Fich1
        Complet2 = Chemin2 & Fich1
     
        ' (on ne touche pas à Application.DisplayAlerts = False
        '(on ne touche pas à Application.screenupdation = False
        SendKeys "+{TAB}", False
        SendKeys "{ENTER}", False
        Workbooks.Open Complet1, 3
        ActiveWorkbook.SaveAs Complet2, xlExcel9795
     
        Workbooks.Close
     
        Fich1 = Dir()
     
        Loop

  13. #13
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Par défaut
    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
    Do While Fich1 <> ""
     
        Complet1 = Chemin1 & Fich1
        Complet2 = Chemin2 & Fich1
     
        ' (on ne touche pas à Application.DisplayAlerts = False
        '(on ne touche pas à Application.screenupdation = False
     
        ' c'est ici.
        Workbooks.Open Complet1, 3 ' je pense que c'est à l'appel que la box apparaît
        ActiveWorkbook.SaveAs Complet2, xlExcel9795
     
        Workbooks.Close
     
        Fich1 = Dir()
     
        Loop
    Mais les deux SENDKEYS arrive avant la boîte et ensuite la boîte apparaît. Je les ai mis après la ligne OPEN mais la boîte arrive donc avant et attend que je clique.

    Concernant ActiveWorkbook.UpdateLinks ou bien ActiveWorkbook.UpdateLink j'obtiens Variable objet ou variable bloc With non définie (erreur 91)

  14. #14
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    La boîte étant modale, c'est bien avant son ouvertrre que les sendkeys doivent être envoyés (celà marche ainsi avec une msgbox que je provoque...)
    Essaye à nouveau, pour voir, en ajoutant un DoEvents juste avant les 2 SendKeys

  15. #15
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Au temps pour moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
    Ca correspond à aller dans Edition/Liaisons. Peut-être que ça peut marcher.

    EDIT : Peux-tu aussi tester d'aller dans Outils/Options/Modification et décocher Confirmation de la mise à jour automatique des liens ?

    EDIT2 : Si ça ne marche toujours pas, j'abandonne cette piste. Il doit forcément y avoir une méthode ou quelque chose intégré à Excel qui utilise cet argument. Cela ne peut pas venir de nul part. Il faudrait trouver ça mais il y a trop de possibilités. De plus, la solution de ucfoutu marchera à coup sûr (le ).

  16. #16
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Par défaut
    SendKeys "%{s}", True
    Doevents

    C'est ... noté

  17. #17
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Par défaut
    je plante sur ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways

    et les DoEvents avec sendkeys arrive avant la boîte, puis la boîte s'affiche

    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
        Do While Fich1 <> ""
     
        Complet1 = Chemin1 & Fich1
        Complet2 = Chemin2 & Fich1
     
        DoEvents
     
     
        'ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
        'SendKeys "%{s}", True
        'ActiveWorkbook.UpdateLinks
        'Application.AsktoUpdate = False
        'Application.DisplayAlerts = False
        SendKeys "+{TAB}", False
        SendKeys "{ENTER}", False
        'Application.ScreenUpdating = False
     
        Workbooks.Open Complet1, 3
        ActiveWorkbook.SaveAs Complet2, xlExcel9795
     
        Workbooks.Close
     
        Fich1 = Dir()
     
        Loop

Discussions similaires

  1. récupérer la valeur du 2ème champ dans un DBLookUpListBox
    Par jakouz dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/07/2004, 16h45
  2. Recherche fonctions rendant la valeur
    Par Bertrand_Collet dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/11/2002, 12h05
  3. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28
  4. [XSLT]position d'un element de valeur specifique
    Par squat dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 25/07/2002, 16h42
  5. Réponses: 2
    Dernier message: 22/07/2002, 18h02

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