Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

Réponse
 
Outils de la discussion
Vieux 21/04/2008, 16h43   #1 (permalink)
Nouveau membre du Club
 
Date d'inscription: juillet 2006
Messages: 53
Par défaut [VBA/Outlook] Browser de fichier

Bonjour,

je suis en train de developper une petite appli pour creer des e-mails...j'ai realiser un formulaire...et dans ce formulaire je souhaiterais pouvoir browser mon disque pour collecter le nom du fichier que je vais mettre en attachement dans mon e-mail...

je travaille avec Oulook 2003 SP3

j'ai essaye plusieurs methodes mais aucune ne fonctionne car les objets utilise ne sont pas connus
- application.getOpenFilename
- Application.FileDialog(msoFileDialogFilePicker)

j'ai poutant declare en refrence:
- Microsoft Outlook 11.0 Object Library
- Microsoft Office 12.0 Object Library (meme probleme avec Office 11.0)

quelqu'un aurait il une idee de mon erreur?

par avance merci,

Daniel.
daniel_gre est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 21/04/2008, 18h53   #2 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
Par défaut

Salut,
Il n'y a pas de telle boite integrée à Outlook mais tu peux utiliser un COMMONDIALOG (Feuille Microsoft Forms 2.0) sur un userform.
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 21/04/2008, 19h33   #3 (permalink)
Responsable Outlook
 
Avatar de Dolphy35
 
Date d'inscription: octobre 2004
Localisation: Rennes
Messages: 3 296
Envoyer un message via MSN à Dolphy35 Envoyer un message via Skype™ à Dolphy35
Par défaut

Salut,

Pour cela tu peux utiliser les APIs, l'avantage c'est que tu n'a pas pas besoin de références et cette méthode peut être distribuée sans soucis

Code à placer dans un module :
Code :
 'Déclaration de l'API
Private Declare Sub PathStripPath Lib "shlwapi.dll" Alias "PathStripPathA" (ByVal pszPath As String)
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
 
 'Constantes
Private Const OFN_READONLY = &H1
Private Const OFN_OVERWRITEPROMPT = &H2
Private Const OFN_HIDEREADONLY = &H4
Private Const OFN_NOCHANGEDIR = &H8
Private Const OFN_SHOWHELP = &H10
Private Const OFN_ENABLEHOOK = &H20
Private Const OFN_ENABLETEMPLATE = &H40
Private Const OFN_ENABLETEMPLATEHANDLE = &H80
Private Const OFN_NOVALIDATE = &H100
Private Const OFN_ALLOWMULTISELECT = &H200
Private Const OFN_EXTENSIONDIFFERENT = &H400
Private Const OFN_PATHMUSTEXIST = &H800
Private Const OFN_FILEMUSTEXIST = &H1000
Private Const OFN_CREATEPROMPT = &H2000
Private Const OFN_SHAREAWARE = &H4000
Private Const OFN_NOREADONLYRETURN = &H8000
Private Const OFN_NOTESTFILECREATE = &H10000
 
Private Const OFN_SHAREFALLTHROUGH = 2
Private Const OFN_SHARENOWARN = 1
Private Const OFN_SHAREWARN = 0
 
 
Public Function OuvrirUnFichier(Titre As String, _
                                TypeRetour As Byte, _
                                Optional TitreFiltre As String, _
                                Optional TypeFichier As String, _
                                Optional RepParDefaut As String) As String
 'OuvrirUnFichier est la fonction a utiliser dans votre formulaire pour ouvrir _
 'la boîte de dialogue de sélection d'un fichier.
 'Explication des paramètres
    'Handle = le handle de la fenêtre (Me.Hwnd)
    'Titre = Titre de la boîte de dialogue
    'TypeRetour (Définit la valeur, de type String, renvoyée par la fonction)
        '1 = Chemin complet + Nom du fichier
        '2 = Nom fichier seulement
    'TitreFiltre = Titre du filtre
        'Exemple: Fichier Access
        'N'utilisez pas cet argument si vous ne voulez spécifier aucun filtre
    'TypeFichier = Extention du fichier (Sans le .)
        'Exemple: MDB
        'N'utilisez pas cet argument si vous ne voulez spécifier aucun filtre
    'RepParDefaut = Répertoire d'ouverture par defaut
        'Exemple: C:\windows\system32
        'Si vous laissé l'argument vide, par defaut il se place dans le répertoire de votre application
 
Dim StructFile As OPENFILENAME
Dim sFiltre As String
 
 'Construction du filtre en fonction des arguments spécifiés
If Len(TitreFiltre) > 0 And Len(TypeFichier) > 0 Then
  sFiltre = TitreFiltre & " (" & TypeFichier & ")" & Chr$(0) & "*." & TypeFichier & Chr$(0)
End If
sFiltre = sFiltre & "Tous (*.*)" & Chr$(0) & "*.*" & Chr$(0)
 
 
 'Configuration de la boîte de dialogue
  With StructFile
    .lStructSize = Len(StructFile) 'Initialisation de la grosseur de la structure
    '.hwndOwner = Handle 'Identification du handle de la fenêtre
    .lpstrFilter = sFiltre 'Application du filtre
    .lpstrFile = String$(254, vbNullChar) 'Initialisation du fichier '0' x 254
    .nMaxFile = 254 'Taille maximale du fichier
    .lpstrFileTitle = String$(254, vbNullChar) 'Initialisation du nom du fichier '0' x 254
    .nMaxFileTitle = 254  'Taille maximale du nom du fichier
    .lpstrTitle = Titre 'Titre de la boîte de dialogue
    .flags = OFN_HIDEREADONLY  'Option de la boite de dialogue
    .lpstrInitialDir = "C:\"    'Chemin
 
  End With
   
If (GetOpenFileName(StructFile)) Then 'Si un fichier est sélectionné
    Select Case TypeRetour
      Case 1: OuvrirUnFichier = Trim$(Left(StructFile.lpstrFile, InStr(1, StructFile.lpstrFile, vbNullChar) - 1))
      Case 2: OuvrirUnFichier = Trim$(Left(StructFile.lpstrFileTitle, InStr(1, StructFile.lpstrFileTitle, vbNullChar) - 1))
    End Select
  End If
 
End Function
 
 
Appel de la fonction :
Code :
MsgBox OuvrirUnFichier("BD Open", 1, "All", "*")
Merci à shwin pour ce code (issu de la FAQ Access)

Dolphy
__________________
Initiation au VBA d'Outlook
venez défier mabrute
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/04/2008, 00h39   #4 (permalink)
Membre régulier
 
Date d'inscription: août 2007
Localisation: France, Paris
Messages: 136
Envoyer un message via MSN à Laurent CUENET Envoyer un message via Skype™ à Laurent CUENET
Par défaut

Bonsoir,

J'ai pas compris la question, ton appli est dans quel langage ?

A bientôt
Laurent CUENET est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 10h28   #5 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
Par défaut

MErci DOLPHY35, pour cette source je la met de coté.

Pour Laurent je pense que c'est du VBA OUTLOOK
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 10h58   #6 (permalink)
Membre régulier
 
Date d'inscription: août 2007
Localisation: France, Paris
Messages: 136
Envoyer un message via MSN à Laurent CUENET Envoyer un message via Skype™ à Laurent CUENET
Par défaut

Oliv,

Merci j'avais vu mais une appli développée par exemple en vb.net, il me semble que pour browser un disque. il y a un contrôle tout prêt.

Alors pourquoi réinventé le ...

A bientôt
Laurent CUENET est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/04/2008, 11h19   #7 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
Par défaut

Tu as raison laurent, si tu crées un objet outlook à partir de word ou excel sans aller vers d'autres langages tu peux utiliser la boite de dialogue intégrèe dont parlait Daniel
Citation:
Application.FileDialog(msoFileDialogFilePicker)
Et puis c'était avant tout une boutade
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide