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 :

Copie de calendrier en VBA


Sujet :

VBA Outlook

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6
    Par défaut Copie de calendrier en VBA
    Bonjour à tous,

    Je débute dans le VBA Outlook bien que j'ai des connaissances en VBA Excel. J'aimerais créer une macro me permettant de copier un élément du calendrier personnel vers un calendrier public (Exchange). Lorsque qu'un utilisateur crée un élément calendrier et clique sur Enregister et Fermer, j'aimerais qu'il est un Userform lui demandant si il veut copier cet élément dans le calendrier public.

    J'ai bien trouvé sur ce forum est sur d'autres des codes permettant ce genre de chose mais je n'arrive pas à les utiliser. En effet je n'arrive même pas à afficher un MsgBox à la création d'un élément.

    Voici le code que j'ai utilisé:

    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
    Private Sub Application_Startup()
     
    'Evénement déclenché lors du démarrage d'Outlook
     
    MsgBox "Outlook ouvert"
     
    'Charger la collection des tâches existantes
     
    Set oTaskItems = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderCalendar).Items
     
    End Sub
     
    Private Sub oTaskItems_ItemAdd(ByVal Item As Object)
     
    'Evénement déclenché lors de la création d'un rendez vous
     
     
    MsgBox "Vous venez de créer " & Item.Subject
     
     
    End Sub
     
    Private Sub oTaskItems_ItemChange(ByVal Item As Object)
     
    'Evénement déclenché lors de la modification d'un rendez vous
     
    MsgBox "Vous venez de modifier la tâche " & Item.Subject
     
    End Sub

    Le premier MsgBox fonctionne bien, mais ensuite cela ne fonctionne plus.


    Quelqu'un pourrait-il me guider un peu?

    Merci par avance.

  2. #2
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Salut,
    Cela concerne bien les rdv ? pas les taches ?
    en fait c'est un peu compliqué car il existe un évenement close pour l'élément RDV mais il faut l'initialisé voir l'aide sur CLOSE.

    Tu peux vérifier par contre l'ajout de rdv dans le dossier calendrier :

    dans THISOUTLOOKSESSION :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim WithEvents colSentItems As Items
     
    Private Sub Application_Startup()
    'pour evenement itemadd
       Dim NS As Outlook.NameSpace
       Set NS = Application.GetNamespace("MAPI")
       Set colSentItems = NS.GetDefaultFolder(olFolderCalendar).Items
       Set NS = Nothing
     'Fin Section
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub colSentItems_ItemAdd(ByVal Item As Object)
    'By Oliv ' janv 2008 pour Outlook 2003 feat. Sue Mosher
    msgbox item.subject
    end sub

    Pour copier un élément dans un autre dossier il faut le copier dans le même puis le déplacer.
    voici l'exemple de l'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
    Sub CopyItem()
    	Dim myolApp As New Outlook.Application
    	Dim myNameSpace As Outlook.NameSpace
    	Dim myFolder As Outlook.MAPIFolder
    	Dim myNewFolder As Outlook.MAPIFolder
    	Dim myItem As Outlook.MailItem
    	Dim myCopiedItem As Outlook.MailItem
    	Set myolApp = CreateObject("Outlook.Application")
    	Set myNameSpace = myolApp.GetNamespace("MAPI")
    	Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
    	Set myNewFolder = myFolder.Folders.Add("Saved Mail", olFolderDrafts)
    	Set myItem = myolApp.CreateItem(olMailItem)
    	myItem.Subject = "Speeches"
    	Set myCopiedItem = myItem.Copy
    	myCopiedItem.Move myNewFolder
    End Sub
    et pour le dossier public ca doit être
    Set Dossierpublic= Application.GetNamespace("MAPI").GetDefaultFolder(olPublicFoldersAllPublicFolders)
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

Discussions similaires

  1. Copie de date dans cellule excel depuis calendrier sous vba
    Par francoiscrna dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/12/2014, 16h45
  2. Génération calendrier en VBA
    Par patmar83 dans le forum VBA Access
    Réponses: 1
    Dernier message: 28/05/2008, 18h01
  3. equivalent "copy picture" MSP en vba
    Par nb_fr31 dans le forum Général VBA
    Réponses: 0
    Dernier message: 15/11/2007, 16h03
  4. Copie de fichier en VBA
    Par Jean-Luc80 dans le forum VBA Access
    Réponses: 5
    Dernier message: 19/09/2007, 19h19
  5. Copie d'écran en VBA
    Par daffy44 dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/07/2007, 18h36

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