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 Outlook Discussion :

Outlook - Excel : La méthode "FileDialog" de l'objet '_Application' a échoué


Sujet :

VBA Outlook

  1. #1
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 210
    Points : 171
    Points
    171
    Par défaut Outlook - Excel : La méthode "FileDialog" de l'objet '_Application' a échoué
    Bonjour.

    J'utilise une méthode normalement éprouvée pour ouvrir une boîte de dialogue de sélection de dossier dans Outlook, à savoir créer une instance Excel à partir de laquelle l'appeler :
    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
    Public Function SelectionnerDossier(Optional ByVal CheminParDefaut As String) As String
        Dim objExcel As Excel.Application   ' Uniquement pour Outlook, qui ne supporte pas l'objet "FileDialog"
        Dim objBoiteDialogue As FileDialog
        Dim strCheminParDefaut As String
     
        ' Définition du chemin par défaut sur "Mes Documents" si aucun n'a été passé en paramètre
        If Len(CheminParDefaut) > 0 Then
            strCheminParDefaut = CheminParDefaut
        Else
            strCheminParDefaut = LectureRegistre("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal", True)
        End If
     
        Set objExcel = New Excel.Application    ' Uniquement pour Outlook, qui ne supporte pas l'objet "FileDialog"
        Set objBoiteDialogue = objExcel.Application.FileDialog(msoFileDialogFolderPicker)
     
    Sortie:
        With objBoiteDialogue
            .InitialFileName = strCheminParDefaut
            If .Show Then
                SelectionnerDossier = .SelectedItems(1)
            Else
                SelectionnerDossier = ""
            End If
        End With
     
        Set objBoiteDialogue = Nothing
        Set objExcel = Nothing  ' Uniquement pour Outlook, qui ne supporte pas l'objet "FileDialog"
    End Function
    La procédure plante à la ligne 15 avec l'erreur suivante :
    ?err.Number
    -2147319779

    ?err.Description
    La méthode 'FileDialog' de l'objet '_Application' a échoué
    Références activées :
    • Visual Basic for Applications
    • Microsoft Outlook 15.0 Object Library
    • OLE Automation
    • Microsoft Office 15.0 Object Library
    • Microsoft Excel 15.0 Object Library
    • Microsoft Forms 2.0 Object Library
    • Microsoft Scripting Runtime


    Quelqu'un aurait-il une idée ?

    Merci d'avance !
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait. (Mark TWAIN)

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20

  3. #3
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 210
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par Oliv- Voir le message
    Bonjour, et merci pour ta réponse.

    Malheureusement, c'est exactement ce que je fais, à ceci près que j'utilise Set objExcel = New Excel.Application au lieu de Set objExcel = CreateObject("Excel.application")

    J'ai quand même essayé, au cas où, mais comme je le craignais, ça ne change rien... Même plantage au même endroit.

    Une autre idée ?
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait. (Mark TWAIN)

  4. #4
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    salut
    et en remplçant
    Set objBoiteDialogue = objExcel.Application.FileDialog(msoFileDialogFolderPicker)

    par Set objBoiteDialogue = objExcel.FileDialog(msoFileDialogFolderPicker)

  5. #5
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 210
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par Oliv- Voir le message
    salut
    et en remplçant
    Set objBoiteDialogue = objExcel.Application.FileDialog(msoFileDialogFolderPicker)

    par Set objBoiteDialogue = objExcel.FileDialog(msoFileDialogFolderPicker)
    J'avais déjà essayé... même punition !
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait. (Mark TWAIN)

  6. #6
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Sous OL2010 ton code fonctionne parfaitement,
    depuis quand ce problème est il apparut ? depuis OFFICE 2013 ?

  7. #7
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 210
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par Oliv- Voir le message
    Sous OL2010 ton code fonctionne parfaitement,
    depuis quand ce problème est il apparut ? depuis OFFICE 2013 ?
    Oui, il fonctionnait sous 2010, et c'est probablement depuis 2013 qu'il bugue
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait. (Mark TWAIN)

  8. #8
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    salut
    c'est étrange --> https://msdn.microsoft.com/fr-fr/lib...or=-2147217396

    et en changeant

    Dim objBoiteDialogue As FileDialog
    par
    Dim objBoiteDialogue

  9. #9
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 210
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par Oliv- Voir le message
    salut
    c'est étrange --> https://msdn.microsoft.com/fr-fr/lib...or=-2147217396

    et en changeant

    Dim objBoiteDialogue As FileDialog
    par
    Dim objBoiteDialogue
    Merci, mais as mieux...
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait. (Mark TWAIN)

  10. #10
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    testé avec office 2016 ton code fonctionne

  11. #11
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 210
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par Oliv- Voir le message
    testé avec office 2016 ton code fonctionne
    On est bien d'accord : mon code devrait fonctionner. Le problème vient donc d'ailleurs, mais je n'arrive pas à le situer...
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait. (Mark TWAIN)

  12. #12
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    essaye de repartir avec un projet vide

    tu vas dans %AppData%\Roaming\Microsoft\Outlook où tu devrais trouver VBAPROJECT.otm tu le renommes et tu aura au lancement de Outlook un nouveau fichier de macro

    (ou dans %AppData%\Local\Microsoft\Outlook)

    où tu pourras tester ton code

    Si cela ne marche pas il faudra tester un autre profil Outlook, puis si cela ne marche aps un autre profil Windows.

    Tu peux aussi vérifier ton projet initial en lançant une compilation.

Discussions similaires

  1. [AC-2010] Méthode "Range" de l'objet "_Application" a échoué
    Par DUCKY_ dans le forum VBA Access
    Réponses: 5
    Dernier message: 31/07/2013, 12h03

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