Supression de RDV outlook a l'ai d'excel

jerome L

XLDnaute Nouveau
Bonjour.

j'ai trouver une macro sur votre site mais je n'arrive pas a la modifié a ma convenance.

en fait je souhaiterai supprimé tout les RDV dont les objets sont dans la colonne A de la page Calendrier.

sachant que tout mes rendez vous ont des objets unique je n'ai pas besoin de me préoccuper de la date.

je suis sur office 2010.

je vous remercie d'avance pour l'aide que vous pourrez m'apporter.

la voici :
Option Explicit

Sub SupprimerRDV()
'nécéssite d'activer la référence Microsoft Outlook 10.0 Object Library
Dim OlApp As New Outlook.Application
Dim OlMapi As Outlook.NameSpace
Dim OlFolder As Outlook.MAPIFolder
Dim OlItems As Outlook.Items
Dim OlAppointment As Outlook.AppointmentItem

Set OlMapi = OlApp.GetNamespace("MAPI")
Set OlFolder = OlMapi.GetDefaultFolder(olFolderCalendar)
Set OlItems = OlFolder.Items

Set OlAppointment = OlItems.Item(1)
'Suppression du premier RDV dans le calendrier :
'1 étant le 1er rdv par ordre d'index du calendrier
'attention l'index correspond à l'odre de creation et non par ordre de date
'la macro "LireRDV" liste les rendez vous par ordre d'index
OlAppointment.Delete

End Sub
 
G

Guest

Guest
Re : Supression de RDV outlook a l'ai d'excel

Bonjour et bienvenue sur le forum,

Vois si cela convient après avoir changé l'expression "Le sujet" dans la macro par l'objet des rdv que tu veux supprimer.

Code:
Sub SupprimerRDV()
 'nécéssite d'activer la référence Microsoft Outlook 10.0 Object Library
 Dim OlApp As New Outlook.Application
 Dim OlMapi As Outlook.Namespace
 Dim OlFolder As Outlook.MAPIFolder
 Dim OlItems As Outlook.Items
 Dim OlAppointment As Outlook.AppointmentItem
 Set OlMapi = OlApp.GetNamespace("MAPI")
 Set OlFolder = OlMapi.GetDefaultFolder(olFolderCalendar)
 Set OlItems = OlFolder.Items
 
 For Each OlAppointment In OlItems
   If OlAppointment.Subject = "Le Sujet" Then OlAppointment.Delete
 Next
 
 Set OlItems = Nothing
 Set OlMapi = Nothing
 Set OlApp = Nothing
 
End Sub

A+
 

jerome L

XLDnaute Nouveau
Re : Supression de RDV outlook a l'ai d'excel

Bonjour.

je te remercie pour ta macro sa fonctionne (partiellement)

en fait je suis nouveau au niveau des macro et je n'arrive pas a faire en sorte que "le sujet" soit la colonne A.

j'ai marquer :

If OlAppointment.Subject = Sheets("Calendrier").Range("A1") Then OlAppointment.Delete

donc sa me supprime bien le sujet dans la case A1 mais pas les autres.

apres j'ai esseyer en rajoutant d'autre ligne comme :

If OlAppointment.Subject = Sheets("Calendrier").Range("A1") Then OlAppointment.Delete
If OlAppointment.Subject = Sheets("Calendrier").Range("A2") Then OlAppointment.Delete
If OlAppointment.Subject = Sheets("Calendrier").Range("A3") Then OlAppointment.Delete

et lorsque la case est vide la macro se met a bugger.

j'ai esseyer :

If OlAppointment.Subject = Sheets("Calendrier").Columns("A") Then OlAppointment.Delete

et sa ne marche pas mieux

y a t'il une solution pour la faire tester toute la colonne temps qu'il y a du texte dans la case.
 
G

Guest

Guest
Re : Supression de RDV outlook a l'ai d'excel

Bonjour,

Voici la macro corrigée (avec suppresion d'une variable inutile 'olItems') et création d'une boucle sur A2:A?

voir commentaires. Par contre la prochaine fois, essaie de tout dire dès le départ, que nous n'ayons pas à travailler pour rien.

Code:
Sub SupprimerRDV()
    'Variables de fonctionnement
    Dim c As Range    'variable objet Range de la cellue en cours de boucle
    'nécéssite d'activer la référence Microsoft Outlook 10.0 Object Library
    Dim OlApp As New Outlook.Application    'déclaraction et création (New) de l'instance Outlook
    Dim OlMapi As Outlook.Namespace
    Dim OlFolder As Outlook.MAPIFolder
    Dim OlAppointment As Outlook.AppointmentItem
    'Initialisation des variables
    Set OlMapi = OlApp.GetNamespace("MAPI")
    Set OlFolder = OlMapi.GetDefaultFolder(olFolderCalendar)
    
    'Travail sur la feuille 'Feuil1'
    With Sheets("Feuil1")    'mettre le nom de la feuille en remplacement de Feuil1
        'Parcourir les cellules de la colonne A de la ligne 2 à la dernière ligne occupée
        For Each c In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
            'Si la cellule n'est pas vide
            If c <> "" Then
                'Parcourir les rdv pour voir si le sujet correspond au contenu de la cellule
                For Each OlAppointment In OlFolder.Items
                    'si oui supprimé le rdv
                    If OlAppointment.Subject = c Then OlAppointment.Delete
                Next
            End If
        Next
    End With
    Set OlMapi = Nothing
    Set OlApp = Nothing
End Sub

A+
 

jerome L

XLDnaute Nouveau
Re : Supression de RDV outlook a l'ai d'excel

Rebonjour.

Merci encore la macro marche à la perfection.

et juste pour clarification ma demande a l'origine portait déjà sur un ensemble de cellule.

sinon bonne fin de journée.

et encore mille merci.

Cordialement.

Bonjour.

j'ai trouver une macro sur votre site mais je n'arrive pas a la modifié a ma convenance.

en fait je souhaiterai supprimé tout les RDV dont les objets sont dans la colonne A de la page Calendrier.

sachant que tout mes rendez vous ont des objets unique je n'ai pas besoin de me préoccuper de la date.

je suis sur office 2010.

je vous remercie d'avance pour l'aide que vous pourrez m'apporter.
 

Discussions similaires

Statistiques des forums

Discussions
312 495
Messages
2 088 964
Membres
103 992
dernier inscrit
Christine 974