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 :

Excl vba - Ouvrir un calendrier partagé Outlook dans une nouvelle fenêtre à une certaine date [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 731
    Points : 189
    Points
    189
    Par défaut Excl vba - Ouvrir un calendrier partagé Outlook dans une nouvelle fenêtre à une certaine date
    Bonjour,

    Le premier code fonctionne nickel pour mes besoins : Il ouvre un agenda partagé dans une nouvelle fenêtre
    J'aimerais afficher la semaine de travail du 01.01.2024 par exemple

    Le deuxième code le fait, mais il n'ouvre pas un calendrier partagé dans une nouvelle fenêtre

    Comment mixer les deux ? Impossible de trouver une solution

    Je vous remercie pour 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub Ouvrir_Agenda_Oscar()
    Dim Email As Object
    Dim objNS As Object
    Dim Messagerie As Object
    Dim objRecip As Object
    Dim objFolder As Object
    Dim Nom_Calendrier As String
        Nom_Calendrier = "o.fernandes@zurbuchensa.ch"
        Set Messagerie = CreateObject("Outlook.Application")
        Set objNS = Messagerie.GetNamespace("MAPI")
        On Error Resume Next    'permet de passer à la ligne suivante pour traiter l'erreur si le calendrier n'est pas trouvé
        Set objRecip = objNS.CreateRecipient(Nom_Calendrier)
        objRecip.Resolve
        If objRecip.Resolved Then
            Set objFolder = objNS.GetSharedDefaultFolder(objRecip, 9) '9 = valeur du dossier calendrier
            Set Email = objFolder.Items.Add
            'Si le calendrier et trouvé mais en lecture seule (pas de modification possible)
            If Not Email Is Nothing Then
                objFolder.Display 'Ouvre le calendrier partagé qui s'affichera une fois le rendez-vous enregistré
            Else
                MsgBox "L'agenda : " & Nom_Calendrier & vbCrLf & vbCrLf & " n'est pas accessible pour la modification.", vbExclamation, "! Oups ! Action interrompue"
            End If
        Else
            MsgBox "L'agenda : " & Nom_Calendrier & vbCrLf & vbCrLf & " n'existe pas.", vbExclamation, "! Oups ! Action interrompue"
        End If
        Set Email = Nothing
        Set objNS = Nothing
        Set Messagerie = Nothing
        Set objRecip = Nothing
        Set objFolder = Nothing
    Application.ScreenUpdating = True
    End Sub


    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
    Sub Atteindre_Date_Calendrier()
    Dim Messagerie As Outlook.Application
    Dim objNS As Outlook.Namespace
    Dim outCalendarView As Outlook.CalendarView
    Dim objRecip As Outlook.Folder
    Dim Nom_Calendrier As String
        Set Messagerie = Outlook.Application
        Set objNS = Messagerie.GetNamespace("MAPI")
        Set objRecip = objNS.GetDefaultFolder(olFolderCalendar)
        Set Messagerie.ActiveExplorer.CurrentFolder = objRecip
        Set outCalendarView = Messagerie.ActiveExplorer.CurrentView
        With outCalendarView
            .GoToDate "01/01/2024"
            .CalendarViewMode = olCalendarViewMonth
            .Save
        End With
    End Sub

  2. #2
    Membre habitué Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 731
    Points : 189
    Points
    189
    Par défaut
    Bonjour,

    C'est tout bon, j'ai trouvé pour afficher la semaine de la date remontée

    Je n'arrive toujours pas à ouvrir la fenêtre en grand (maximized)

    Une idée ?

    Bon weekend

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Sub Ouvrir_Agenda_Poseur()
    Dim Email As Object
    Dim objNS As Object
    Dim Messagerie As Object
    Dim objRecip As Object
    Dim objFolder As Object
    Dim Calendar_View As Outlook.CalendarView
    Dim LigneActive As String
    Dim f As Variant
    Dim Ma_Date As Date
        Agenda_Mail.Nom_Poseur 'Dénifir le nom du calendrier
        Set Messagerie = CreateObject("Outlook.Application")
        Set objNS = Messagerie.GetNamespace("MAPI")
        On Error Resume Next    'permet de passer à la ligne suivante pour traiter l'erreur si le calendrier n'est pas trouvé
        Set objRecip = objNS.CreateRecipient(Nom_Calendrier_poseur)
        objRecip.Resolve
        If objRecip.Resolved Then
            Set objFolder = objNS.GetSharedDefaultFolder(objRecip, 9) '9 = valeur du dossier calendrier
            Set Email = objFolder.Items.Add
            'Si le calendrier et trouvé mais en lecture seule (pas de modification possible)
            If Not Email Is Nothing Then
                Set f = ActiveSheet
                LigneActive = ActiveCell.Row
                If f.Cells(LigneActive, Range("TS_Suivi" & "[Intervention]").Column).Value = "" Then
                    Ma_Date = Date
                Else
                    Ma_Date = f.Cells(LigneActive, Range("TS_Suivi" & "[Intervention]").Column).Value
                End If
                objFolder.Display 'Ouvre le calendrier partagé
                Set Messagerie.ActiveExplorer.CurrentFolder = objFolder
                Set Calendar_View = Messagerie.ActiveExplorer.CurrentView
    '            Messagerie.Application.ActiveWindow.WindowState = 2 ne fonctionne pas
                Calendar_View.GoToDate Ma_Date
    '            Calendar_View.CalendarViewMode = olCalendarViewMonth 'Affiche le mois
    '            Calendar_View.Save
            Else
                MsgBox "L'agenda : " & Nom_Calendrier_poseur & vbCrLf & vbCrLf & " n'est pas accessible pour la modification.", vbExclamation, "! Oups ! Action interrompue"
            End If
        Else
            MsgBox "L'agenda : " & Nom_Calendrier_poseur & vbCrLf & vbCrLf & " n'existe pas.", vbExclamation, "! Oups ! Action interrompue"
        End If
        Set Email = Nothing
        Set objNS = Nothing
        Set Messagerie = Nothing
        Set objRecip = Nothing
        Set objFolder = Nothing
    Application.ScreenUpdating = True
    End Sub

  3. #3
    Membre habitué Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 731
    Points : 189
    Points
    189
    Par défaut
    Enfin

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Sub Ouvrir_Agenda_Poseur()
    Dim Email As Object
    Dim objNS As Object
    Dim Messagerie As Object
    Dim objRecip As Object
    Dim objFolder As Object
    Dim Calendar_View As Outlook.CalendarView
    Dim LigneActive As String
    Dim f As Variant
    Dim Ma_Date As Date
        Nom_Calendrier_poseur = "p.gonin@zurbuchensa.ch"
     
        Set Messagerie = CreateObject("Outlook.Application")
        Set objNS = Messagerie.GetNamespace("MAPI")
        On Error Resume Next    'permet de passer à la ligne suivante pour traiter l'erreur si le calendrier n'est pas trouvé
        Set objRecip = objNS.CreateRecipient(Nom_Calendrier_poseur)
        objRecip.Resolve
        If objRecip.Resolved Then
            Set objFolder = objNS.GetSharedDefaultFolder(objRecip, 9)
                                                        '(objRecip, 6) Mail
                                                        '(objRecip, 9) Calendrier
                                                        '(objRecip, 10) Contact
                                                        '(objRecip, 11) Journal
                                                        '(objRecip, 12) Notes
                                                        '(objRecip, 13) Tâches
            Set Email = objFolder.Items.Add
            'Si le calendrier et trouvé mais en lecture seule (pas de modification possible)
            If Not Email Is Nothing Then
                Set f = ActiveSheet
                LigneActive = ActiveCell.Row
                If f.Cells(LigneActive, Range("TS_Suivi" & "[Intervention]").Column).Value = "" Then
                    Ma_Date = Date
                Else
                    Ma_Date = f.Cells(LigneActive, Range("TS_Suivi" & "[Intervention]").Column).Value
                End If
                objFolder.Display 'Ouvre le calendrier partagé
                Set Messagerie.ActiveExplorer.CurrentFolder = objFolder
                Set Calendar_View = Messagerie.ActiveExplorer.CurrentView
    '            Messagerie.Application.ActiveWindow.WindowState = 2 ne fonctionne pas
                Calendar_View.GoToDate "01.01.2024" 'Ma_Date
    '            Calendar_View.CalendarViewMode = olCalendarViewMonth 'Affiche le mois
    '            Calendar_View.Save
            Else
                MsgBox "L'agenda : " & Nom_Calendrier_poseur & vbCrLf & vbCrLf & " n'est pas accessible pour la modification.", vbExclamation, "! Oups ! Action interrompue"
            End If
        Else
            MsgBox "L'agenda : " & Nom_Calendrier_poseur & vbCrLf & vbCrLf & " n'existe pas.", vbExclamation, "! Oups ! Action interrompue"
        End If
        Set Email = Nothing
        Set objNS = Nothing
        Set Messagerie = Nothing
        Set objRecip = Nothing
        Set objFolder = Nothing
    Application.ScreenUpdating = True
    End Sub

  4. #4
    Membre habitué Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 731
    Points : 189
    Points
    189
    Par défaut
    Bonjour,

    Tout fonctionne nickel, mais un message Outlook apparait avec Impossible de lire le calendrier alors que tout est ouvert à la bonne date.

    C'est imconpréhensible

    Meilleures salutations

  5. #5
    Membre habitué Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 731
    Points : 189
    Points
    189
    Par défaut
    Il faut ajouter un temps d'arrêt et plus de message

    Application.Wait (Now + TimeValue("0:00:01")) 'Pour éviter le message Outlook : Impossible de lire le calendrier

    Juste avant : Calendar_View.GoToDate Ma_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
    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
    Sub Ouvrir_Agenda_Poseur()
    Dim Email As Object
    Dim objNS As Object
    Dim Messagerie As Object
    Dim objRecip As Object
    Dim objFolder As Object
    Dim Calendar_View As Outlook.CalendarView
    Dim f As Variant
    Dim Ma_Date As Date
    Application.ScreenUpdating = False
        Set Messagerie = CreateObject("Outlook.Application")
        Set objNS = Messagerie.GetNamespace("MAPI")
        On Error Resume Next    'permet de passer à la ligne suivante pour traiter l'erreur si le calendrier n'est pas trouvé
        Set objRecip = objNS.CreateRecipient(Adresse_Mail_Poseur)
        objRecip.Resolve
        If objRecip.Resolved Then
            Set objFolder = objNS.GetSharedDefaultFolder(objRecip, 9)
                                                        '(objRecip, 6) Mail
                                                        '(objRecip, 9) Calendrier
                                                        '(objRecip, 10) Contact
                                                        '(objRecip, 11) Journal
                                                        '(objRecip, 12) Notes
                                                        '(objRecip, 13) Tâches
            Set Email = objFolder.Items.Add
            'Si le calendrier et trouvé mais en lecture seule (pas de modification possible)
            If Not Email Is Nothing Then
                Set f = Sheets("Suivi")
                If f.Cells(ActiveCell.Row, f.Range("TS_Suivi" & "[Intervention]").Column).value = "" Then
                    Ma_Date = Date
                Else
                    Ma_Date = f.Cells(ActiveCell.Row, f.Range("TS_Suivi" & "[Intervention]").Column).value
                End If
                objFolder.Display 'Ouvre le calendrier partagé
                Messagerie.ActiveWindow.WindowState = olNormalWindow  'olMaximized olNormalWindow olMinimized
                Set Messagerie.ActiveExplorer.CurrentFolder = objFolder
                Set Calendar_View = Messagerie.ActiveExplorer.CurrentView
                Application.Wait (Now + TimeValue("0:00:01")) 'Pour éviter le message Outlook : Impossible de lire le calendrier
                Calendar_View.GoToDate Ma_Date
            Else
                MsgBox "L'agenda : " & Adresse_Mail_Poseur & vbCrLf & vbCrLf & " n'est pas accessible pour la modification.", vbExclamation, "! Oups ! Action interrompue"
            End If
        Else
            MsgBox "L'agenda : " & Adresse_Mail_Poseur & vbCrLf & vbCrLf & " n'existe pas.", vbExclamation, "! Oups ! Action interrompue"
        End If
        Set Email = Nothing
        Set objNS = Nothing
        Set Messagerie = Nothing
        Set objRecip = Nothing
        Set objFolder = Nothing
    Application.ScreenUpdating = True
    End Sub

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

Discussions similaires

  1. [XL-MAC 2016] VBA Excel / Récupérer des mails OUTLOOK dans une boite mail qui n'est pas celle par défaut
    Par GregCompta dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/05/2018, 19h35
  2. [XL-2007] Créer un rendez-vous dans un calendrier partagé Outlook
    Par scoubi77 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/09/2017, 10h53
  3. [XL-2010] Création rendez vous sur calendrier partager outlook depuis excel
    Par chab91270 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/09/2016, 16h49
  4. [XL-2003] Ouvrir un calendrier partagé Via excel
    Par spidey89 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/12/2011, 07h09
  5. ouvrir un calendrier partage
    Par arctica dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 29/10/2010, 11h51

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