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 :

Meeting Request depuis Excel sans utiliser les References [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Octobre 2011
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2011
    Messages : 30
    Par d�faut Meeting Request depuis Excel sans utiliser les References
    Bonjour � tous,

    Je dois pouvoir envoyer des mails et des Meeting Request depuis un fichier excel partag� qui va �tre utilis� par des utilisateurs d'Office 2003, 2007 et 2010.

    Pour �viter le probl�me de "changement de r�f�rence -Microsoft Outlook 1x.0-) j'ai cod� un utilisant des objets mais j'ai un probl�me avec les Meeting Request. Le code ci-dessous fonctionne correctement si j'active la R�f�rence Microsoft Outlook mais je veux que le code fonctionne aussi sans cette r�f�rence activ�. Ca fait quelques jours que je tourne au tour du pot et je n'arrive pas � trouver la solution.
    L'erreur survient � l'auteur de la ligne "RequiredAttendees".
    Merci de votre aide.

    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
    Sub Test()
        Dim olApplication As Object
        Dim olAppointment As Object
     
        Set olApplication = CreateObject("Outlook.Application")
        Set olAppointment = olApplication.CreateItem(olAppointmentItem)
     
        With olAppointment
            .RequiredAttendees = "[email protected]"
            .Subject = "Test Meeting Request"
            .Importance = 2
            .Start = "18/06/2012" & " 8:30"
            .Location = "Dans mon bureau"
            .Body = "Test"
            .MeetingStatus = 1
            .ResponseRequested = True
            .Send
        End With
     
        Set olApplication = Nothing
        Set olAppointment = Nothing
    End Sub

  2. #2
    Expert confirm�
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par d�faut
    Bonjour,

    J'ai d�j� rencontr� ce probl�me que j'avais contourn� en cochant la r�f�rence Outlook. Si tu ne le fais pas, "olAppointment" est un mailitem alors que, si la r�f�rence est coch�e, "olAppointment" est bien un appointmentitem comme tu peux le voir dans la fen�tre des variables locales. A ta place, je listerais les r�f�rences (coch�es) des diff�rentes versions d'Excel et dans ton appli, ja testerai la version pour ajouter la bonne r�f�rence :

    1. liste des r�f�rences sur la premi�re feuille du classeur :

    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
    Sub ListReferencePaths()
         'Macro purpose:  To determine full path and Globally Unique Identifier (GUID)
         'to each referenced library.  Select the reference in the Tools\References
         'window, then run this code to get the information on the reference's library
     
        On Error Resume Next
        Dim i As Long
        With ThisWorkbook.Sheets(1)
            .Cells.Clear
            .Range("A1") = "Reference name"
            .Range("B1") = "Full path to reference"
            .Range("C1") = "Reference GUID"
            .[D1] = "Majeur"
            .[E1] = "Mineur"
        End With
        For i = 1 To ThisWorkbook.VBProject.References.Count
            With ThisWorkbook.VBProject.References(i)
                ThisWorkbook.Sheets(1).Range("A65536").End(xlUp).Offset(1, 0) = .Name
                ThisWorkbook.Sheets(1).Range("A65536").End(xlUp).Offset(0, 1) = .FullPath
                ThisWorkbook.Sheets(1).Range("A65536").End(xlUp).Offset(0, 2) = .GUID
                ThisWorkbook.Sheets(1).Range("A65536").End(xlUp).Offset(0, 3) = .Major
                ThisWorkbook.Sheets(1).Range("A65536").End(xlUp).Offset(0, 4) = .Minor
            End With
        Next i
        On Error GoTo 0
    End Sub
    2. Ajout d'une r�f�rence :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    Sub AjoutReference()
    ActiveWorkbook.VBProject.References.AddFromGuid "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 2, 0
    End Sub

  3. #3
    Invit�
    Invit�(e)
    Par d�faut
    Bonjour

    Pas besoin de cocher une r�f�rence.

    olAppointmentItem est une constante li�e � OutLook, celle-ci a une valeur que l'on peut retrouver dans l'explorateur d'objet (F2) de l'�diteur VB.

    Il y a donc deux solutions :

    • Remplacer la constante pas sa valeur.
    • Recr�e dans un module la constante avec la valeur.

    Personnellement, la deuxi�me solution est celle que j'utilise.

    Le fait de cocher une r�f�rence te lis � la version, donc des soucis de portabilit�.

    Philippe

  4. #4
    Expert confirm�
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par d�faut
    Super !
    J'ai essay� avec la m�thode 1; par contre, je n'ai pas compris le 2. Est-ce que tu peux expliquer davantage ?

  5. #5
    Invit�
    Invit�(e)
    Par d�faut
    Re

    Un exemple sera plus parlant :

    J'utilise un compl�ment Access (c'est le m�me probl�me sous Excel) qui permet entre autre d'envoyer un tableau par OutLook qui est le r�sultat d'une analyse d'un fichier.

    Donc dans mon code j'utilise :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Set ObjMail = AppOutLook.CreateItem(olMailItem)
    Hors, le compl�ment tourne sur des postes avec Access 2000 et 2002, donc impossible de r�f�rencer OutLook.

    Tu te doutes bien que sans r�f�rencer OutLook la ligne bug, car il ne connait pas la constante olMailItem

    Donc dans un module je d�clare :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Public Const olMailItem As Long = 0
    Ainsi ma constante est reconnue et le code est plus parlant.

    En r�sumant :

    Je d�veloppe en cochant la r�f�rence et je d�clare les objets comme des objets OutLook.
    Avant de distribuer, je d�coche la r�f�rence, et les objets OutLook sont d�clar�s comme des objets :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    Public AppOutLook As Object
    Public ObjMail As Object
    Ensuite je d�clare les constante en Public avec leur valeur que je r�cup�re dans l'explorateur d'objet et tout est reconnu.

    De plus le nom de la constante est plus parlant que sa valeur.

    Philippe

  6. #6
    Expert confirm�
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par d�faut
    De plus le nom de la constante est plus parlant que sa valeur.
    C'est le seul int�r�t par rapport � la solution 1 ?

  7. #7
    Invit�
    Invit�(e)
    Par d�faut
    Citation Envoy� par Daniel.C Voir le message
    C'est le seul int�r�t par rapport � la solution 1 ?
    Pour moi, c'est un int�r�t �norme lorsque l'on veut d�bugger un programme et lors de la conception de celui-ci.

    Philippe

  8. #8
    Expert confirm�
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par d�faut
    Merci.

  9. #9
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Octobre 2011
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2011
    Messages : 30
    Par d�faut
    Merci de votre aide. �a marche !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [VBA EXCEL]comment utiliser les boites a outils control sur une feuille excel
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    R�ponses: 3
    Dernier message: 13/02/2007, 19h04
  2. Inclure un fichier externe sans utiliser les frames
    Par gazza dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 12/07/2006, 08h52
  3. R�ponses: 9
    Dernier message: 01/07/2006, 20h04
  4. Decompression d'un fichier sans utiliser les modules du CPAN
    Par choubiroute dans le forum Modules
    R�ponses: 6
    Dernier message: 10/03/2006, 14h20

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