Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

Réponse
 
Outils de la discussion
Vieux 08/04/2008, 17h54   #1 (permalink)
Zan
Nouveau membre du Club
 
Date d'inscription: janvier 2006
Localisation: Lyon
Messages: 73
Par défaut Recuperer les données du calendrier

Bonjour,
Est-il possible de récupérer via flux xml ou autre les données du jour du calendrier et/ou agenda de outlook.

Je voudrais utiliser cela pour un programme en flash affichant les infos du jour sur une appli en flash.

D'après moi cela est impossible car microsoft blinde son logiciel pour éviter ce genre de chose mais au cas ou ...

Merci
Zan est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/04/2008, 20h05   #2 (permalink)
Responsable Outlook
 
Avatar de Dolphy35
 
Date d'inscription: octobre 2004
Localisation: Rennes
Messages: 3 275
Envoyer un message via MSN à Dolphy35 Envoyer un message via Skype™ à Dolphy35
Par défaut

Salut,

Voici un code qui permet d'exporter le dossier Calendrier sous le format ics.
Si tu peux interpréter le format ics et tu possède Outlook 2007, tu peux utiliser ceci :

Code :
Sub ExportCalendrier_ics()
'---------------------------------------------------------------------------------------
' Procédure : ExportCalendrier_ics
' Auteur    : Dolphy35 - http://dolphy35.developpez.com/
' Date      : 08/04/2008
' Détail    : Exporte le calendrier par défaut dans un fichier ics
'---------------------------------------------------------------------------------------
'***************************************
'* NE FONCTIONNE QUE SOUS OUTLOOK 2007 *
'***************************************
 
    'Déclaration des objets
    Dim nsMAPI As NameSpace
    Dim fldDossier As Folder
    Dim cldExport As CalendarSharing
 
    'Instance des objets
    Set nsMAPI = Application.GetNamespace("MAPI")
    Set fldDossier = nsMAPI.GetDefaultFolder(olFolderCalendar)
 
    'Instancie le dossier Calendrier pour l'export
    Set cldExport = fldDossier.GetCalendarExporter
 
    'instance de l'objet Calendrier (dossier)
    With cldExport
        'information de disponibilité
        .CalendarDetail = olFullDetails
        'N'exporte que les éléments situés dans les horaires de travail
        .RestrictToWorkingHours = True
        'Exclu les pièces jointe
        .IncludeAttachments = False
        'Ajoute les éléments privés
        .IncludePrivateDetails = True
        'Sauvegarde le fichier au chemin définit
        .SaveAsICal "C:\MonCalendrier.ics"
    End With
 
    'vide les instances
    Set cldExport = Nothing
    Set fldDossier = Nothing
    Set nsMAPI = Nothing
 
End Sub
__________________
Initiation au VBA d'Outlook
venez défier mabrute
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/04/2008, 10h08   #3 (permalink)
Membre régulier
 
Date d'inscription: août 2007
Localisation: France, Paris
Messages: 136
Envoyer un message via MSN à Laurent CUENET Envoyer un message via Skype™ à Laurent CUENET
Par défaut

Bonjour,

Dolphy te propose une export dans un format standard de calendrier mais...

Micrososft blinde tellement son logiciel que tu peux l'exporter dans presque tous les formats. C'est juste une question de temps de développement. Si tu travailles avec Exchange, tu peut l'interroger par WebDAV au format XML directement, dans le cas Micrososft Outlook seul, tu peux faire une Macro qui génère un fichier XML et tu écris dedans les infos comme tu le souhaites (un peu long, mais ca marche).

A bientôt,
Laurent CUENET est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/04/2008, 10h23   #4 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 446
Par défaut

Salut,
Tu veux faire quelques chose qui ressemble à la page "outlook aujourdhui" ?
Ca doit être possible regarde du coté de chez "GOOGLE DESKTOP" et leur barre latérale
http://www.google.com/ig/directory?u...et.xml&synd=gd

Ils proposent des API et autres outils http://code.google.com/more/

Sinon tu peux te connecter par CDO
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/04/2008, 10h26   #5 (permalink)
Zan
Nouveau membre du Club
 
Date d'inscription: janvier 2006
Localisation: Lyon
Messages: 73
Par défaut

Bonjour à tous, merci pour vos réponse.

J'aimerais simplement afficher les infos du calendrier du jour, rendez-vous etc. enregistrés dans Outlook dans une application Flash, sans pour autant devoir coder plein de chose ^^.

Une solution simple serait de récupérer via flux xml les infos, mais Outlook ne semble pas générer ce genre de flux.
cela est peut être tout simplement impossible!

Pour le vb, c'est un langage que je ne connais pas sauf de nom.
Zan est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/04/2008, 10h48   #6 (permalink)
Membre régulier
 
Date d'inscription: août 2007
Localisation: France, Paris
Messages: 136
Envoyer un message via MSN à Laurent CUENET Envoyer un message via Skype™ à Laurent CUENET
Par défaut

Bonjour,

Rien de facile si tu ne connais pas vb. La meilleur solution reste l'enregistrement au format *.ics ou un fichier csv.

A bientôt,
Laurent CUENET est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/04/2008, 23h20   #7 (permalink)
Responsable Outlook
 
Avatar de Dolphy35
 
Date d'inscription: octobre 2004
Localisation: Rennes
Messages: 3 275
Envoyer un message via MSN à Dolphy35 Envoyer un message via Skype™ à Dolphy35
Par défaut

Salut,

voici un code qui permet d'exporter le calendrier au format csv, dans le même principe tu peux faire la même chose pour un fichier xml.

Code :
Sub Export_CalendrierCSV()
'---------------------------------------------------------------------------------------
' Procédure : Export_CalendrierCSV
' Auteur    : Dolphy35 - http://dolphy35.developpez.com/
' Date      : 09/04/2008
' Détail    : Permet d'exporter le calendrier sous forme CSV
'---------------------------------------------------------------------------------------
'
'Quelques explications :
' - Création d'un fichier au format csv (séparation avec des ;).
'
' - Crétaions des entêtes de colonnes.
'
' - Définition si élément sur une journée, dans ce cas on met une croix dans la première colonne
'   et on ne met que la date de l'événement, sinon on met rien dans la première colonne mais on
'   charge les colonne Date et heure de début ainsi que dtae et heure de fin.
'
' - On charge ensuite le Sujet, la Description
'
' - La Priorité     0 -> faible importance
'                   1 -> moyenne importante
'                   2 -> haute importance
'
' - La Catégorie.
'
' - La Disponibilité  0 -> disponible
'                     1 -> rendez-vous provisoire
'                     2 -> occupé
'                     3 -> absent
'
' - La classification de l'élément  0 -> Normal
'                                   1 -> Personnel
'                                   2 -> Privé
'                                   3 -> Confidentiel
'
    'Déclarations des variables et objets
    Dim objApply As Outlook.Application
    Dim objNameSpace As Outlook.NameSpace
    Dim objFolder As Outlook.MAPIFolder
    Dim objCalendrier As Outlook.AppointmentItem
    Dim intNbr As Integer
    Dim strStream As String
    Dim objFSO As New Scripting.FileSystemObject
    Dim fsoFichier As Scripting.TextStream
 
    'Instance et création du fichier texte
    Set fsoFichier = objFSO.CreateTextFile("C:\test.csv", True)
    'Chargement des entêtes de colonnes
    strStream = "Evénement sur une journée;Date Début;Heure Début;Date Fin;Heure Fin;Sujet;Description;Lieu;" & _
                "Organisateur;Priorité;Catégorie;Dispo;Classification"
    'Ecriture dans le fichier
    fsoFichier.WriteLine (strStream)
    'Instance des objets Outlook
    Set objApply = Outlook.Application
    Set objNameSpace = objApply.GetNamespace("MAPI")
    Set objFolder = objNameSpace.GetDefaultFolder(olFolderCalendar)
    'Boucle en focnction du nombre d'éléments
    For intNbr = 1 To objFolder.Items.Count
        'Instance du Calendrier
        Set objCalendrier = objFolder.Items.Item(intNbr)
        'Teste si élément sur un journée
        If objCalendrier.AllDayEvent = True Then
            'si sur 1 journée
            strStream = "X;" & Format(objCalendrier.Start, "dd/mm/yyyy") & ";;;;"
        Else
            'pas sur 1 journée
            strStream = ";" & Format(objCalendrier.Start, "dd/mm/yyyy") & ";" & Format(objCalendrier.Start, "hh:mm") & ";" & _
                        Format(objCalendrier.End, "dd/mm/yyyy") & ";" & Format(objCalendrier.End, "hh:mm") & ";"
        End If
        'Chargement dans la variable de la partie commune
        strStream = strStream & objCalendrier.Subject & ";" & objCalendrier.Body & ";" & objCalendrier.Location & ";" & _
                    objCalendrier.Organizer & ";" & objCalendrier.Importance & ";" & objCalendrier.Categories & ";" & _
                    objCalendrier.BusyStatus & ";" & objCalendrier.Sensitivity
        'Ecriture dans le fichier
        fsoFichier.WriteLine (strStream)
    Next
    'Fermeture du fichier
    fsoFichier.Close
    'Message de fin d'export
    MsgBox "Export terminé"
End Sub
__________________
Initiation au VBA d'Outlook
venez défier mabrute
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide