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 :

Afficher l'agenda Outlook à une date précise


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 Afficher l'agenda Outlook à une date précise
    Bonjour à toutes et tous !

    Le sujet est dans le titre : j'effectue un suivi de ma facturation dans Excel et je souhaite pouvoir atteindre la date d'une facture dans mon agenda Outlook.

    J'ai trouvé quelques lignes de codes qui expliquent certaines manipulations d'Outlook, mais je n'arrive pas à les adapter.

    En fait, tous les codes que je trouve fonctionnent mais présentent deux caractéristiques qui ne me conviennent pas :

    • Ils créent une nouvelle instance d'Outlook alors que je veux utiliser l'existante
    • ils créent un nouveau rendez-vous alors que je veux afficher les rendez-vous d'une date donnée dans le format d'affichage actuel


    En résumé, je souhaite juste gagner du temps en affichant d'un simple clic ma session Outlook sur l'agenda à la bonne page...

    Dit comme ça, ça n'a pourtant pas l'air sorcier

    Mais je n'y parviens pas !

    Alors je remercie par avance toutes celles et ceux qui sauront m'apporter des éléments de réponse (ou pourquoi pas la réponse entière ?)

    Dans l'attente, bien cordialement,
    Eric.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Et si tu nous montrais le code que tu utilises, je pense que cela aiderait les membres du forum pour qu'ils puissent t'indiquer les lignes à modifier, non ?

    Philippe

  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 Philippe, et merci pour cette réponse rapide.

    La raison pour laquelle je n'ai pas posté mon code est que je voulais laisser toute latitude à celle ou celui qui aurait une réponse à me fournir, ce dans le cas où une meilleure piste que celle que j'aborde existerait.

    Puisque tu le demandes, voici néanmoins la procédure en question :
    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 AtteindreDateAgendaOutlook()
        Dim appOutlook As Object
        Dim Espace As Outlook.Namespace
        Dim Calendrier As Outlook.MAPIFolder
        Dim Evenement As Outlook.AppointmentItem
     
        'Instanciation des Objets
        Set appOutlook = GetObject("", "Outlook.Application")  ' J'espérais ici récupérer l'instance d'Outlook en cours et non en créer une nouvelle
        Set Espace = appOutlook.GetNamespace("MAPI")
        Set Calendrier = Espace.GetDefaultFolder(olFolderCalendar)
        Set Evenement = Calendrier.Items(Calendrier.Items.Count)    ' soit le dernier rendez-vous du calendrier. C'est ici que je voudrais sélectionner non pas un rendez-vous, mais plutôt définir la date à laquelle afficher le calendrier
     
        'Affichage
        Calendrier.Display  ' du calendrier. C'est là que je vois apparaître la nouvelle instance d'Outlook alors que je voulais simplement passer la fenêtre d'Outlook en premier plan.
        Evenement.Display   ' du rendez-vous sélectionné ci-dessus. Si la ligne précédente est passée en commentaire, affiche quand même le rendez-vous, mais même non affichée, il s'agit toujours d'une nouvelle instance comme le confirme la double entrée dans la liste des processus actifs
     
        'Vidage des instances
        Set appOutlook = Nothing
        Set Espace = Nothing
        Set Calendrier = Nothing
        Set Evenement = Nothing
    End Sub
    Les détails des problèmes que je rencontre sont en commentaires dans le code.

    En faisant tourner cette procédure, on constate l'ouverture d'Outlook sur le calendrier puis l'ouverture du rendez-vous.
    Au risque de me répéter, mais afin d'éviter toute erreur d'interprétation, je souhaite afficher le calendrier à une date précise et en utilisant le mode d'affichage en cours (semaine de travail).

    Encore merci d'avance pour vos réponses !
    Bien cordialement,
    Eric.

  4. #4
    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 à tous !

    Je reviens sur cette vieille discussion car... je n'ai toujours pas la réponse !

    Et j'en ai toujours besoin...

    Et je suppose que je suis loin d'être le seul.

    Je reformule donc de façon très concise (pour les détails, voir mes posts ci-dessus) :

    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).

    En vous remerciant par avance pour vos réponses, bien cordialement,
    Eric.

  5. #5
    Invité
    Invité(e)
    Par défaut
    En cherchant un peu sur le net:
    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
    Option Explicit
     
    Public Sub AtteindreDateAgendaOutlook()
     
      Dim olApp As Outlook.Application
      Dim olFld As Outlook.MAPIFolder
      Dim olExp As Outlook.Explorer
      Dim olViw As Outlook.View
      Dim dteDate As Date
     
      Set olApp = CreateObject("Outlook.Application")
      Set olFld = olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderCalendar)
     
      dteDate = Date + 30
     
      olFld.Display
      Set olExp = olFld.GetExplorer
      Set olViw = olExp.CurrentView
      olViw.GoToDate dteDate
     
      Set olFld = Nothing
      Set olViw = Nothing
      Set olExp = Nothing
      Set olApp = Nothing
     
    End Sub

  6. #6
    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
    Oulaaah!!!

    Tout d'abord, BONJOUR (ça me semble plutôt approprié pour une première réponse)...

    Ensuite :
    Citation Envoyé par vcottineau
    En cherchant un peu sur le net:
    • j'ai beaucoup cherché sur le net , vraiment beaucoup,
    • Je serai curieux de savoir comment tu as évalué que je ne l'avais pas suffisamment fait,
    • je ne crois pas que le ton sarcastique soit de rigueur ici, quel que soit le niveau ou l'ancienneté de celui qui poste,
    • au ton de mes messages précédents, et de tous ceux que j'ai pu poster sur ce forum, tu pourras remarquer que j'attache une importance particulière à respecter les autres, et tu comprendras sûrement que l'absence de courtoisie avec laquelle tu débutes ta réponse m'agace profondément.


    Pour en revenir au sujet qui nous intéresse, et en reprenant ton style :

    En lisant un peu mieux ma demande :
    Citation Envoyé par Moi-même
    Je souhaite, à partir d'Excel 2010 et en VBA, afficher dans la fenêtre actuelle d'Outlook 2010
    ... c'est pourtant écrit en rouge et en gras : dans la fenêtre actuelle d'Outlook... Le code que tu me proposes utilise la méthode Display qui, selon l'aide d'Outlook :
    Citation Envoyé par Aide Microsoft Outlook
    Folder.Display, méthode
    Affiche un nouvel objet Explorer pour le dossier.
    Ensuite, GotoDate semble ne pas fonctionner correctement dans ce contexte.
    Il ne renvoie pas d'erreur, mais la date affichée autant que celle sélectionnée reste celle du jour actuel...

    Si je suivais ton exemple, je dirais que tu n'as pas testé ce code avant de le poster, mais rien ne me le prouve, et je préfère largement te remercier pour le temps que tu as bien voulu m'accorder en me répondant. Pour preuve, je ne noterai pas négativement ta réponse.

    Je te remercie aussi car je ne connaissais pas la propriété View qui pourrait apporter de l'eau à mon moulin.

    Pour finir, je te remercie par avance de ta compréhension, de l'aide éventuelle que tu pourras m'apporter et de la courtoisie dont sur sauras faire preuve dans nos futurs échanges.

    A toutes et à tous : le problème reste entier !

    Toujours dans l'espoir d'une réponse et vous en remerciant par avance, bien cordialement,
    Eric.

  7. #7
    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 Afficher le calendrier Outlook à une date choisie
    Bonjour à toutes te tous !

    J'ai précédemment posté plusieurs messages en vue de résoudre la problématique suivante :

    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).

    Les diverses réponses que j'ai reçues associées à quelques recherches personnelles m'ont permis d'élaborer la solution suivante :

    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
    Sub AtteindreDateDansCalendrierOutlook()
        Dim appOutlook As Outlook.Application
        Dim outEspace As Outlook.Namespace
        Dim outCalendarView As Outlook.CalendarView
        Dim outDossier As Outlook.Folder
        Dim datGoTo As Date
     
        Set appOutlook = Outlook.Application    ' Si Outlook est ouvert, permet d'utiliser les membres de l'application
        Set outEspace = appOutlook.Session  ' Equivaut à appOutlook.GetNamespace("MAPI"), charge les membres de la session Outlook en cours
     
        datGoTo = "10/05/2013"  ' Date à atteindre
        ' pour info, tous les formats de dates sont acceptés dès lors qu'ils sont en chiffre ou dans l'ordre de date système :
        'datGoTo = "10/5/2013"
        'datGoTo = "10/05/13"
        'datGoTo = "10/5/13"
        'datGoTo = 41404
        'datGoTo = Application.WorksheetFunction.RandBetween(CDate("1/1/11"), Date) ' Une date au hasard entre le 01/01/2011 et aujourd'hui
     
        Set outDossier = outEspace.GetDefaultFolder(olFolderCalendar)   ' Charge le dossier Calendrier par défaut de la session en cours
     
        Set appOutlook.ActiveExplorer.CurrentFolder = outDossier ' Affiche le calendrier chargé
     
        Set outCalendarView = appOutlook.ActiveExplorer.CurrentView ' Charge la vue courante du calendrier affiché
     
        ' Manipulation de la vue courante :
        With outCalendarView
            .GoToDate datGoTo  ' Atteint la date choisie
            .CalendarViewMode = olCalendarViewMonth ' Qualifie l'affichage du calendrier affiché (ici semaine de travail)
            .Save   ' Applque le changement de vue. Sans cette ligne, CalendarViewMode ne s'applique pas
        End With
    End Sub
    Merci à vcottineau d'avoir participé à ma recherche, et surtout un grand merci à parmi pour m'avoir quasiment servi la solution sur un plateau !

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

Discussions similaires

  1. Cumul à partir d'une date précise [noob ^^]
    Par Brice_68 dans le forum Access
    Réponses: 6
    Dernier message: 30/03/2007, 13h40
  2. Lancé une procédure stockée à une date précise
    Par Oberown dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/07/2006, 17h23
  3. [Mail] Email à une date précise
    Par CICG-Net dans le forum Langage
    Réponses: 7
    Dernier message: 02/03/2006, 00h12
  4. [MySQL] Afficher des évènements selon une année précise
    Par gotenks dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 11/01/2006, 13h43
  5. Renvoyer une date précise
    Par kilyn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/10/2004, 10h11

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