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

VBA Outlook Discussion :

Créer un RDV sur Espace "iCloud"


Sujet :

VBA Outlook

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Créer un RDV sur Espace "iCloud"
    Bonjour,
    Je cherche à créer un RDV sur le calendrier “Sport" qui est partagé sur mon PC et mon smartPhone par iCloud
    Mon bout de code fonctionne sur les calendriers de mon espace professionnel « MonJob » mais pas avec le Calendrier “Sport" qui est sur « iCLoud » Les 2 espaces « iCloud » et « MonJob » sont présents dans les calendriers Outlook sur mon PC
    Autodidacte en VBA, après plusieurs recherches, je n’arrive pas à écrire le bon code.
    Merci de votre aide

    Ci-dessous je colle le code que j'utilise

    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
    Sub RDVSport()
     
     
    Dim oOutlook As Outlook.Application
    Dim oAppointment As Outlook.AppointmentItem
    Dim namespaceOutlook As Outlook.Namespace
    Dim DossierCalendrier As Outlook.MAPIFolder
     
     
    'creation des objets
    Set oOutlook = CreateObject("Outlook.Application")
    Set namespaceOutlook = oOutlook.GetNamespace("MAPI")
     
     
    'definit le dossier calendrier
    Set DossierCalendrier = namespaceOutlook.GetDefaultFolder(olFolderCalendar).Folders.Item("Sport")
     
    'on cree un nouveau rendez-vous
    Set oApointment = DossierCalendrier.Items.Add
     
     
    With oApointment
    .Start = "17/9/2021"
    .AllDayEvent = True
    .End = "19/9/2021"
    .Subject = "essai RDV SPORT"
    .Save
    .Close (olSave)
    End With
     
    Set oAppointment = Nothing
    Set oOutlook = Nothing
    End Sub

    Voici une capture des calendriers d'Outlook
    Nom : cal.jpg
Affichages : 140
Taille : 31,5 Ko
    Images attachées Images attachées  

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Bonjour,
    Dans mes recherches j’ai trouvé un code qui permet de retrouver les dossiers et sous dossiers de calendrier dont ceux d’iCloud et "Sport". Par contre comment utiliser cette information pour générer un RDV, je bloque, …


    Voici le code:
    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 ListerRepertoires()
        Dim myNamespace, Folder, SubFolder
        Dim strTemp As String
        On Error GoTo Erreur
        Set objOutlook = New Outlook.Application
        Set myNamespace = objOutlook.GetNamespace("MAPI")
    'Lister les repertoires principaux
        For Each Folder In myNamespace.Folders
            strTemp = strTemp & Folder.Name & vbCrLf
            strTemp = strTemp & GetSubFolder(Folder) 'recherche des sous-repertoires
        Next
        Set myNamespace = Nothing
        Set objOutlook = Nothing
        MsgBox strTemp
    Exit Sub
    Erreur:
        MsgBox Err.Description
    End Sub
     
    Function GetSubFolder(Folder) As String
        Dim strTemp As String
        Dim FolderTemp
        For Each FolderTemp In Folder.Folders
            If FolderTemp.DefaultItemType = olAppointmentItem Then  'type Calendrier
            strTemp = strTemp & vbTab & FolderTemp.Name & vbCrLf
            End If
        Next
        GetSubFolder = strTemp
     
    End Function
    En résultat j'obtiens un message du type:

    Nom : calendrier.PNG
Affichages : 128
Taille : 5,7 Ko

  3. #3
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    Vous pouvez utiliser ce type de fonction :

    Code VBA : 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
    Function FindInFolders(TheFolders As Outlook.Folders, FolderName As String)
      Dim SubFolder As Outlook.MAPIFolder
     
      On Error Resume Next ' peut être inutile
     
      Set FindInFolders = Nothing
     
      For Each SubFolder In TheFolders ' on parcourt les dossiers
        If LCase(SubFolder.Name) Like LCase(Name) Then
          Set FindInFolders = SubFolder ' dossier trouvé
          Exit For ' sortie de la fonction
        Else ' sinon
          Set FindInFolders = FindInFolders(SubFolder.Folders, FolderName) ' appel récursif dans les sous dossiers
          If Not FindInFolders Is Nothing Then Exit For ' si folder trouvé, on sort
        End If
      Next
    End Function

    exemple de code pour ajouter u rdv :

    Code VBA : 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
        Dim nomDossier As String
        Dim oOutlook As Outlook.Application
        Dim oAppointment As Outlook.AppointmentItem
        Dim namespaceOutlook As Outlook.Namespace
        Dim DossierCalendrier As Outlook.MAPIFolder
     
        Set oOutlook = New Outlook.Application
     
        nomDossier = "Sport" ' on définit le nom du dossier recherché
     
        Set DossierCalendrier = FindInFolders(oOutlook.ActiveExplorer.Session.Folders, nomDossier)
     
        If Not DossierCalendrier Is Nothing Then ' si le dossier a été trouvé
     
            'on crée un nouveau rendez-vous
            Set oApointment = DossierCalendrier.Items.Add
     
            With oApointment
                .Start = "17/9/2021"
                .AllDayEvent = True
                .End = "19/9/2021"
                .Subject = "essai RDV SPORT"
                .Save
                .Close (olSave)
            End With
     
            Set oAppointment = Nothing
     
        Else
            MsgBox "Pas trouvé !", vbInformation
        End If
     
        Set oOutlook = Nothing
        '...

    Tout ceci a adapter, car je n'ai pas testé..

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

Discussions similaires

  1. [PHP 5.3] Probleme espace , quote et input
    Par misakilou dans le forum Langage
    Réponses: 2
    Dernier message: 12/10/2011, 17h03
  2. [MySQL] créer et gérer un espace publicitaire sur une page web dynamique (php, js, etc)
    Par taftchap dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/08/2011, 18h12
  3. Prog de citation sur forum [QUOTE]
    Par oxyde356 dans le forum Langage
    Réponses: 2
    Dernier message: 22/07/2006, 12h03
  4. [VB.Net] "Impossible de créer le handle de fenêtre"
    Par cedric_g dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/04/2006, 12h49

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