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 :

Le transfert des dates vers outlook


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 8
    Par défaut Le transfert des dates vers outlook
    Bonjour
    J’ai besoin d’aide sur le vba Excel, je travail sur un fichier de vérifications périodique de mes installations. Afin de ne pas oublier les rappels, j’effectue un transfert des dates avec le motif du rappel sur le calendrier Outlook. Pour cela j’utilise un code trouvé sur la toile qui fonctionne très bien
    Or je rencontre un probléme ,lors d’une modification de date ,je provoque un doublons dans mon calendrier.
    Ma question : Comment effectuer le transfert des dates modifier vers le calendrier Outlook.
    Doit-on mettre en place un flag ,(une cellule vrai/faux)lors de la modification, si oui comment faire en automatique.
    Voici le code utilisée pour le transfert :

    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
    'nécéssite d'activer la référence Microsoft Outlook 10.0 Object Library
    Dim myOlApp As New Outlook.Application
    Dim MyItem As Outlook.AppointmentItem
    Dim Cell As Range
    For Each Cell In Range("A8:A" & Range("A22").End(xlUp).Row)
        Set MyItem = myOlApp.CreateItem(olAppointmentItem)  
        With MyItem
            .MeetingStatus = olNonMeeting
            .Subject = Cell
            .Start = Cell.Offset(0, 1) ' Attention : format mm/dd/yy
            .Duration = Cell.Offset(0, 2) 'minutes
            .Location = Cell.Offset(0, 3)
            .Save
        End With
            Set MyItem = Nothing
    Next Cell
    Merci

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,

    En effet un Flag en colonne 5 par exemple sur ton fichier peut aider, reste à supprimer le RDV correspondant avant de recréer un nouveau RDV( j'avoue que je sais pas si on peut simplement modifier)

    Voici toujours un exemple pour faire une recherche dans ton calendrier Outlook, reste à adapter pour ton cas

    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
    Sub RechercheCalendrier()
     
    Set ol = New Outlook.Application
    Set olns = ol.GetNamespace("MAPI")
    Set myFolder = olns.GetDefaultFolder(olFolderCalendar)
    Set MyTasks = myFolder.Items
     
    ' Recherche dans le calendrier selon le sujet
    Set MyTask = MyTasks.Find("[subject] = ""RDV Mr X""")
    If MyTask Is Nothing Then ' Si non trouvé
       MsgBox "Pas de rendez vous prévu"
    Else
       MsgBox "Rendez vous prévu le " & MyTask.Start
    End If
     
    Set ol = Nothing
    Set olns = Nothing
    Set myFolder = Nothing
    Set MOnSujet = Nothing
     
    End Sub
    Bonne continuation

  3. #3
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Re,
    Je suis vraiment débile, bien sur qu'on peut modifier, y'a qu'à utiliser MyTask , ça ferait:

    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
    Sub RechercheCalendrier()
     
    Set ol = New Outlook.Application
    Set olns = ol.GetNamespace("MAPI")
    Set myFolder = olns.GetDefaultFolder(olFolderCalendar)
    Set MyTasks = myFolder.Items
     
    ' Recherche dans le calendrier selon le sujet
    Set MyTask = MyTasks.Find("[subject] = ""RDV Mr X""")
    If MyTask Is Nothing Then ' Si non trouvé
       MsgBox "Pas de rendez vous prévu"
    Else
       MsgBox "Rendez vous prévu le " & MyTask.Start
           With MyTask
            .MeetingStatus = olNonMeeting
            .Subject = "RDV Mr Y"
            .Save
        End With
     
    End If
     
    Set ol = Nothing
    Set olns = Nothing
    Set myFolder = Nothing
    Set MOnSujet = Nothing
     
    End Sub

Discussions similaires

  1. Transfert des fichiers vers un serveur FTP de façon automatique.
    Par WhiteTigerZ dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 09/06/2015, 16h36
  2. Transfert des données vers excel
    Par nacibo dans le forum Débuter
    Réponses: 1
    Dernier message: 10/11/2010, 09h34
  3. [JMS] [ActiveMQ] Transfert des messages vers une autre queue
    Par austin P. dans le forum Java EE
    Réponses: 0
    Dernier message: 02/06/2009, 15h16
  4. importer des dates vers matlab
    Par antoinemi dans le forum MATLAB
    Réponses: 5
    Dernier message: 10/04/2009, 10h48

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