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 :

VBA - Problème en tentant de piloter l'affichage d'Outlook 2010 [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé 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
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    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 : 218
    Par défaut VBA - Problème en tentant de piloter l'affichage d'Outlook 2010
    Bonjour à toutes et tous !

    Je souhaite, à partir d'Excel 2010 et en VBA, afficher dans la fenêtre actuelle d'Outlook 2010 le calendrier à une date donnée (disons pour l'exemple le 01/03/2013) et selon un affichage précis (disons, toujours pour l'exemple, Semaine de travail).

    J'ai trouvé ceci :
    Citation Envoyé par Aide Microsoft Outlook
    Explorer.CurrentFolder, propriété
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ChangeCurrentFolder()
        Dim myNamespace As Outlook.NameSpace
     
        Set myNamespace = Application.GetNamespace("MAPI")
        Set Application.ActiveExplorer.CurrentFolder = _
        myNamespace.GetDefaultFolder(olFolderCalendar)
    End Sub
    Je l'ai donc adapté pour Excel (puisque c'est de là que je souhaite partir) :
    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
    Sub Calendrier()
        Dim appOutlook As Outlook.Application
        Dim outEspace As Outlook.Namespace
        Dim outExplorer As Outlook.Explorer
        Dim outCalendrier As Outlook.MAPIFolder
     
        Set appOutlook = Outlook.Application
        Set outEspace = appOutlook.Session
        Set outExplorer = appOutlook.ActiveExplorer
        Set outCalendrier = outEspace.GetDefaultFolder(olFolderCalendar)
     
        outExplorer.CurrentFolder = outCalendrier
     
        Set appOutlook = Nothing
        Set outEspace = Nothing
        Set outExplorer = Nothing
        Set outCalendrier = Nothing
    End Sub
    En le faisant tourner j'obtiens ceci :
    Citation Envoyé par Microsoft Visual Basic

    Erreur d'exécution '-2147024891 (80070005)':
    Vous ne disposez pas des autorisations nécessaires pour effectuer cette opération.
    Je n'ai trouvé sur la toile que des publications concernant l'erreur 80070005 lors de l'installation de Vista. Celle-ci semble relative à la sécurité des dossiers...
    J'ai donc tenté d'autoriser l'accès au dossier Outlook et à tous les .pst qui s'ytrouve à "Tout le Monde" en accès total.

    Rien n'a changé, j'ai toujours le même message d'erreur...

    Merci d'avance à quiconque saura me mettre sur la voie !

    Dans l'intervalle, bien cordialement,
    Eric.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Voici un exemple trouvé dans l'aide.
    Ça peut te mettre sur une piste de départ...
    Mais ce ne sera pas dans la fenêtre actuelle d'Outlook, mais plutôt dans une vue à part...

    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
    Sub TestGoToDate()
        Dim appOutlook As Outlook.Application
        Dim outEspace As Outlook.Namespace
        Dim oCV As Outlook.CalendarView
        Dim oExpl As Outlook.Explorer
        Dim datGoTo As Date
     
        Set appOutlook = Outlook.Application
        Set outEspace = appOutlook.GetNamespace("MAPI")    
     
        datGoTo = "5/7/2013"  'mm/jj/aaaa
     
        ' Display the contents of the Calendar default folder.
        Set oExpl = appOutlook.Explorers.Add( _
            appOutlook.Session.GetDefaultFolder(olFolderCalendar), olFolderDisplayFolderOnly)
        oExpl.Display
     
        ' Retrieve the current view by calling the
        ' CurrentView property of the Explorer object.
        Set oCV = oExpl.CurrentView
     
        ' Set the CalendarViewMode property of the
        ' current view to display items by day.
        oCV.CalendarViewMode = olCalendarView5DayWeek
     
        ' Call the GoToDate method to set the date
        ' for which information is displayed in the view.
        oCV.GoToDate datGoTo
    End Sub
    Et voici une méthode qui utilise la session ouverte d'Outlook pour sélectionner le calendrier et modifier sa date


    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
    Sub TestGoToDate()
        Dim appOutlook As Outlook.Application
        Dim outEspace As Outlook.Namespace
        Dim oCV As Outlook.CalendarView
        Dim Fold As Outlook.Folder
        Dim datGoTo As Date
     
        Set appOutlook = Outlook.Application
        Set outEspace = appOutlook.GetNamespace("MAPI")
     
        datGoTo = "5/7/2013"  'mm/jj/aaaa
     
        Set Fold = outEspace.GetDefaultFolder(olFolderCalendar)
     
        ' Affiche le calendrier de la session en cours
        Set appOutlook.ActiveExplorer.CurrentFolder = Fold
     
        Set oCV = appOutlook.ActiveExplorer.CurrentView
     
        oCV.CalendarViewMode = olCalendarView5DayWeek  'calendrier type 5 jours
     
        oCV.GoToDate datGoTo  'changement de date
    End Sub

  3. #3
    Membre éclairé 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
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    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 : 218
    Par défaut
    Bonjour parmi, et un grand merci pour ta participation plus qu'efficace !

    J'ai à peine modifié le dernier code que tu m'as fourni et j'ai publié la solution finale ICI.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA] Problème d'affichage de Textbox
    Par Salent dans le forum Général VBA
    Réponses: 3
    Dernier message: 07/06/2013, 15h05
  2. Réponses: 1
    Dernier message: 12/11/2012, 11h56
  3. Problème pilote d'affichage ATI
    Par Aladin_23 dans le forum Windows Vista
    Réponses: 3
    Dernier message: 14/06/2010, 10h04
  4. problème pilote d'affichage
    Par waldoun dans le forum Windows Vista
    Réponses: 4
    Dernier message: 13/12/2009, 17h10
  5. [VBA] - Problème affichage Textbox
    Par Jeyjey1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/11/2007, 18h09

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