Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Outlook > VBA Outlook
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/03/2007, 10h39   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2005
Messages : 135
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 135
Points : 10
Points : 10
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 :
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 ?
wanou44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2007, 11h08   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Je n'ai pas de pb avec ton code. J'ai simplement remplacé
Citation:
"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
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2007, 11h36   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2005
Messages : 135
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 135
Points : 10
Points : 10
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.
wanou44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2007, 11h48   #4
Candidat au titre de Membre du Club
 
Inscription : décembre 2005
Messages : 135
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 135
Points : 10
Points : 10
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 :
1
2
3
If (GetOpenFileName(structSave)) Then
    OuvrirUnFichier = Mid$(0, 1, InStr(1, 0, vbNullChar) - 1)
End If
Mon code :
Code :
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()
wanou44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2007, 13h44   #5
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Non, j'ai du ajouter la ligne
Code :
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 :
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 :
1
2
3
Sub OuvrirModele()
Documents.Open BrowseForFile("D:\xls\|*.xls|All Files|", "*.xls")
End Sub
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2007, 14h17   #6
Candidat au titre de Membre du Club
 
Inscription : décembre 2005
Messages : 135
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 135
Points : 10
Points : 10
Je n'arrive pas à trouver la bonne syntaxe.
A chaque fois, il me met "objet requis".

Si quelqu'un sait, je suis preneur.
wanou44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2007, 18h17   #7
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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 ?
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h45.


 
 
 
 
Partenaires

Hébergement Web