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 :

[VBA - Outlook] Boite de dialogue Ouvrir


Sujet :

VBA Outlook

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 143
    Points : 38
    Points
    38
    Par défaut [VBA - Outlook] Boite de dialogue Ouvrir
    Bonjour,

    J'ai créé une fonction pour enregistrer des messages comme modèle en *.oft.

    Je souhaiterais maintenant faire une fonction pour ouvrir ces modèles.
    J'ai essayé de créer une fonction pour afficher la boite de dialogue "Ouvrir" et afficher que les .oft. Jusque là, pas de problème mais quand je clique sur un fichier il ne s'ouvre pas et la macro s'arrête.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub OuvrirModele()
    Call BrowseForFile("P:\System\Application Data\Microsoft\Templates\", "oft Modele Outlook|*.oft|All Files|*.*")
    End Sub
     
    Function BrowseForFile(pstrPath, pstrFilter)
    Set objDialog = CreateObject("UserAccounts.CommonDialog")
    objDialog.Filter = pstrFilter
    objDialog.InitialDir = pstrPath
    objDialog.Flags = &H80000 + &H4 + &H8
    intResult = objDialog.ShowOpen
    BrowseForFile = objDialog.FileName
    End Function
    Pouvez-vous m'aider ?

  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
    Je n'ai pas de pb avec ton code. J'ai simplement remplacé
    "oft Modele Outlook|*.oft|All Files
    par
    (Je n'ai pas de fichier outlook)
    A+

    Pendant que j'y suis, je cherche le moyen de récupérer, non pas un fichier mais un nom de répertoire. Avec ta méthode, tu ne saurais pas comment je pourrais le récupérer. (j'ai une solution VB6 mais pas VBA, et je n'arrive pas à exploiter celle que j'ai trouvée dans la FAQ. En outre je la trouve très lourde.
    Merci

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 143
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par ouskel'n'or
    Je n'ai pas de pb avec ton code. J'ai simplement remplacé
    par
    (Je n'ai pas de fichier outlook)
    A+

    Pendant que j'y suis, je cherche le moyen de récupérer, non pas un fichier mais un nom de répertoire. Avec ta méthode, tu ne saurais pas comment je pourrais le récupérer. (j'ai une solution VB6 mais pas VBA, et je n'arrive pas à exploiter celle que j'ai trouvée dans la FAQ. En outre je la trouve très lourde.
    Merci
    Et ton fichier s'ouvre bien quand tu cliques dessus car moins la boite de dialogue se ferme et plus rien.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 143
    Points : 38
    Points
    38
    Par défaut
    J'ai reprise la fonction que j'avais trouvé pour afficher la boite de dialogue "Enregistrer sous" et j'ai essayé de l'adapter pour en faire une "Ouvrir".

    Mais j'ai un problème à cette ligne là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If (GetOpenFileName(structSave)) Then
        OuvrirUnFichier = Mid$(0, 1, InStr(1, 0, vbNullChar) - 1)
    End If
    Mon 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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" _
            Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) _
            As Long
     
     'Structure du fichier
    Private Type OPENFILENAME
      lStructSize As Long
      hWndOwner As Long
      hInstance As Long
      lpstrFilter As String
      lpstrCustomFilter As String
      nMaxCustFilter As Long
      nFilterIndex As Long
      lpstrFile As String
      nMaxFile As Long
      lpstrFileTitle As String
      nMaxFileTitle As Long
      lpstrInitialDir As String
      lpstrTitle As String
      Flags As Long
      nFileOffset As Integer
      nFileExtension As Integer
      lpstrDefExt As String
      lCustData As Long
      lpfnHook As Long
      lpTemplateName As String
    End Type
     
     
    Sub OuvrirModele()
    Call OuvrirUnFichier(0, "Ouvrir", "P:\System\Application Data\Microsoft\Templates\")
    End Sub
     
     
    Function OuvrirUnFichier(Handle As Long, Titre As String, _
                        Chemin As String) As String
     
    Dim structSave As OPENFILENAME
     
    With structSave
        .lStructSize = Len(structSave)
        .hWndOwner = Handle
    '    .nMaxFile = 255
    '    .lpstrFile = NomFichier & String$(255 - Len(NomFichier), 0)
        .lpstrInitialDir = Chemin
        .lpstrFilter = "oft Modele Outlook (*.oft)" & Chr$(0) & "*.oft" & Chr$(0) 'Définition du filtre (aucun)
        .Flags = &H4  'Option de la boite de dialogue
    End With
     
    If (GetOpenFileName(structSave)) Then
        OuvrirUnFichier = Mid$(0, 1, InStr(1, 0, vbNullChar) - 1)
    End If
     
    End Function
    Et j'appelle la fonction OuvrirModele()

  5. #5
    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
    Non, j'ai du ajouter la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Documents.Open FileName:=BrowseForFile
    pour un doc word (je suis dans Word "présentement") et je pense que dans Excel, j'aurais dû mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.open filename:=.....
    Et dans outlook, je pense que tu dois utiliser la syntaxe appropriée que je ne connais pas

    Edit
    Pour l'ouvrir depuis OuvrirModele, j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub OuvrirModele()
    Documents.Open BrowseForFile("D:\xls\|*.xls|All Files|", "*.xls")
    End Sub

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 143
    Points : 38
    Points
    38
    Par défaut
    Je n'arrive pas à trouver la bonne syntaxe.
    A chaque fois, il me met "objet requis".

    Si quelqu'un sait, je suis preneur.

  7. #7
    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
    Si tu me donnes la syntaxe pour ouvrir un fichier outlook, je peux peut-être avoir une inspiration
    A+

    Question : Tu l'ouvres depuis quelle appli ce fichier ?

Discussions similaires

  1. [VBA-E] boite de dialogue palette de couleur
    Par virginie2 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 02/04/2017, 15h20
  2. [VBA]Boite de dialogue "Ouvrir"
    Par lito74 dans le forum VBA Access
    Réponses: 6
    Dernier message: 25/04/2007, 08h57
  3. [VBA E]boite de dialogue ouvrir
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 04/06/2006, 21h59
  4. [VBA-E]Boite de dialogue personnalisée
    Par MJMJ dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/03/2006, 13h47
  5. [VBA] Paramètres boite de dialogue Excel
    Par seb.kepka dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/01/2006, 11h19

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