Supprimer des rendez-vous dans le Calendrier de Outlook 2003
cs_gfortin9
Messages postés7Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 février 2008
-
25 févr. 2008 à 23:00
cs_gfortin9
Messages postés7Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 février 2008
-
27 févr. 2008 à 04:03
Allô!
VBA de Excel 2003 et Calendrier de Outlook 2003 sur serveur Exchange.
À l'aide de bouts de code VBA glanés ici et là, j'ai construit un fichier
Excel 2003 pour fusionner des rendez-vous dans Outlook. Les données des
rendez-vous sont lues dans des feuilles. Puis, l'année suivante, on fusionne
les nouveaux rendez-vous et, possiblement, on peut enlever les anciens.
Je peux effacer aisément les anciens rendez-vous par programmation VBA.
Mais lors des tests, j'ai remarqué que je ne peux pas effacer des
rendez-vous qui ne sont pas arrivés à terme.
Exemple : Nous sommes le 2008/02/25, je ne peux pas effacer un rendez-vous
du 2008/04/18. Mais j'efface aisément un rendez-vous du 2008/02/23.
On dirait que Outlook2003 garde un pointeur actif tant que le rendez-vous
n'est pas échu.
J'aimerais pouvoir effacer quand même. Car si un utilisateur fusionne
malencontreusement une série qui ne lui était pas utile, qu'il puisse
corriger aisément en les effaçant via mon "Userform".
Ces gens ne sont pas nécessairement habiles pour effacer facilement une
série de rendez-vous dans leur calendrier de Outlook 2003.
Êtes-vous au fait de cette restriction et est-il possible de la contournée ?
Merci de votre attention.
GF
A voir également:
Supprimer des rendez-vous dans le Calendrier de Outlook 2003
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 26 févr. 2008 à 00:08
Faudrait voir comment tu procèdes...
Il me semble qu'on peut supprimer ces rendez-vous même s'ils ne sont pas encore échus... mais peut-être que je me trompe...(?)
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
cs_gfortin9
Messages postés7Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 février 2008 26 févr. 2008 à 00:40
Merci de voir cela avec moi
Sub EffacerCalendrier()
Dim objOutlook As New outlook.Application
Dim objOutlookAppt As outlook.AppointmentItem
Dim objOutlookCalendar As outlook.Items
Dim objOutlookNameSpace As outlook.NameSpace
Dim DateDebut, DateFin As String
Dim LaLigne, LaLigne2 As Integer
Dim LeTestSujet As String
If OptB200708 = True Then ' choisir l'année de travail
Address3 = Address3 & "0708"
Else
Address3 = Address3 & "0607"
End If
While TypeName(objOutlookAppt) <> "Nothing"
LeTestSujet = Worksheets(Address3).Cells(LaLigne2, 6)
If objOutlookAppt.Subject = Worksheets(Address3).Cells(LaLigne2, 6) Then
objOutlookAppt.Delete
LaLigne2 = LaLigne2 - 1
End If
LaLigne2 = LaLigne2 + 1
Set objOutlookAppt = objOutlookCalendar.FindNext
Wend
LaLigne = LaLigne + 1
Loop
End Sub
cs_gfortin9
Messages postés7Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 février 2008 26 févr. 2008 à 19:59
Allô!
Cherchez, cherchez et vous trouverez....
Lors de mes recherches, j'ai trouvé ceci :
Pour effacer un rendez-vous, je fais faire une recherche sur la date et l'heure de début du rendez-vous, ainsi que sur la date et l'heure de fin; afin de les comparer à les informations avec celles que j'ai dans mon chiffrier Excel.
J'ai remarqué que pour les rendez-vous non échus qui ne veulent pas s'effacer; c'est l'heure de fin qui cause problème.
Si je limite ma recherche à la date et heure du début et date de fin, ça passe.
Étant donné qu'il y a très peu de chances d'avoir confusion avec un autre rendez-vous, je vais laisser cela ainsi.
À moins qu'un spécialiste de Outlook 2003 puisse m'expliquer le phénomène de la date de fin que Outlook semble considérer différemment si ce moment fait parti du futur.
Merci de me lire.
Le fait de vous écrire, c'est déjà une bonne thérapie 8- )))))
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 26 févr. 2008 à 22:50
As-tu remarqué quel était l'écart entre ces 2 heures ?
Peut-être que c'est en relation avec l'heure de rappel qui est souvent 15 minutes avant l'heure réelle du rendez-vous (?)
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_gfortin9
Messages postés7Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 février 2008 27 févr. 2008 à 04:03
Allô! Allô! Ici la lune.
Une mauvaise programmation causait mes problèmes.
Mea culpa, mea culpa, mea maxima culpa.
J'ai enlevé les deux lignes en rouge et tout c'est mis à fonctionner comme une formule 1.
Je ne sais pas ce qui m'a amené à les inscrire un jour.
M'enfin... comme dit : Gaston.
Tout ça, je l'ai appris de façon empirique et, parfois, ça va en pire ... hic!
Merci de me lire et de me supporter dans mes tentatives.
Longue vie aux Forums qui offrent de l'aide de façon direct et souvent de façon indirect en étant une oreille attentive, une fenêtre en dehors de soi, une manière de se relire pour se resourcer.
Je vous aime.
GF
Sub EffacerCalendrier()
Dim objOutlook As New outlook.Application
Dim objOutlookAppt As outlook.AppointmentItem
Dim objOutlookCalendar As outlook.Items
Dim objOutlookNameSpace As outlook.NameSpace
Dim DateDebut, DateFin As String
Dim LaLigne, LaLigne2 As Integer
Dim LeTestSujet As String
If OptB200708 = True Then ' choisir l'année de travail
Address3 = Address3 & "0708"
Else
Address3 = Address3 & "0607"
End If
While TypeName(objOutlookAppt) <> "Nothing"
LeTestSujet = Worksheets(Address3).Cells(LaLigne2, 6)
If objOutlookAppt.Subject = Worksheets(Address3).Cells(LaLigne2, 6) Then
objOutlookAppt.Delete
LaLigne2 = LaLigne2 - 1
End If
LaLigne2 = LaLigne2 + 1
Set objOutlookAppt = objOutlookCalendar.FindNext
Wend
LaLigne = LaLigne + 1
Loop
End Sub