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 :

Problème VBA avec le mytask sur la lecture de calendrier outlook


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    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
    Points : 8
    Points
    8
    Par défaut Problème VBA avec le mytask sur la lecture de calendrier outlook
    Bonjour,


    Je rencontre un problème avec la syntaxe my task.

    J’utilise un code VBA permettant de mettre à jour mon calendrier outlook via un fichier Excel.Or lorsque que je modifie une date pour redéfinir un rendez vous, je rencontre des doublons.

    Voici mon
    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
    Sub NouveauRDV_Calendrier()
    '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
     
    End Sub
    Grâce à l’information de Fvandermeulen.j’arrive à retrouver manuellement.

    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
    Maintenant je voudrai effectuer la fusion des 2 codes.Mais j’ai des problèmes avec la systaxe My task.

    Mettre à la place de test1 le range de la cell ,me permettant de tourner en boucle entre A8 et A22.lors de la scrutation si le rendez-vous excite je passe outre, sinon j’effectue 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
    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 RechercheCalendrier()
    Dim myOlApp As New Outlook.Application
    Dim MyItem As Outlook.AppointmentItem
    Dim Cell As Range
     
     
    Set ol = New Outlook.Application
    Set olns = ol.GetNamespace("MAPI")
    Set myFolder = olns.GetDefaultFolder(olFolderCalendar)
    Set MyTasks = myFolder.Items
    line:
    For Each Cell In Range("A8:A" & Range("A22").End(xlUp).Row)
     
     
    ' Recherche dans le calendrier selon le sujet
    Set MyTask = MyTasks.Find("[subject] = ""test1""")
    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
     '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
    GoTo line
    End If
     
    Set ol = Nothing
    Set olns = Nothing
    Set myFolder = Nothing
    Set MOnSujet = Nothing
     
    End Sub
    Merci

  2. #2
    Membre émérite 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 : 48
    Localisation : Belgique

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

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

    En fait c'est ta variable Cell qui te permet de récupérer la valeur qui alimentra test1.

    J'ai pas essayé, mais ça devrait donner ça, si ça ne fonctionne pas il faut jouer avec les "

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    For Each Cell In Range("A8:A" & Range("A22").End(xlUp).Row)
         Test1 = "" & cell.Value & ""
    ' Recherche dans le calendrier selon le sujet
    Set MyTask = MyTasks.Find("[subject] = " & Test1 & "")
    If MyTask Is Nothing Then
     'Création du rendez vous, ton code initial
    Else
     'Modification du rendez vous, voir le dernier code que j'avais posté sur l'autre discussion.
    ...
    A+
    N'oubliez pas le si votre problème est solutionné.

Discussions similaires

  1. [XL-2010] Problème ADOBD avec un filtre sur un nombre
    Par marcod59 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/06/2014, 17h57
  2. [XL-2010] Probléme VBA avec userform
    Par jeremV dans le forum Macros et VBA Excel
    Réponses: 34
    Dernier message: 06/01/2014, 15h21
  3. Réponses: 2
    Dernier message: 18/08/2008, 08h57
  4. Problème css avec Google AdSense sur FireFox
    Par WerKa dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 28/04/2008, 14h24
  5. Problémes mémoire avec le bde sur des bases paradox
    Par Keke des Iles dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/05/2004, 16h55

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