Help!! VBA-Outlook appointment! modification, suppression de rdv

Résolu
BrianBellamy Messages postés 24 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 1 avril 2005 - 24 mars 2005 à 08:32
BrianBellamy Messages postés 24 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 1 avril 2005 - 25 mars 2005 à 10:59
Si quelqu'un était en mesure de m'aider, il pourrait m'être d'un très grand secours!!
Après avoir réussi à insérer un rendez vous dans un calendrier Outlook avec ce code sous une interface Access que j'ai crée:

Private Sub Command16_Click()

Dim objOutlook As Outlook.Application
Dim apptOutlook As Outlook.AppointmentItem
Set objOutlook = CreateObject("Outlook.Application")
Set apptOutlook = objOutlook.CreateItem(olAppointmentItem)


With apptOutlook
.start = Date.Value & Space(1) & Hdbt.Value
.End = Date.Value & Space(1) & Hfin.Value
.Subject = "réunion"
.Body = "chose"
.ReminderSet = True
.Save
End With

Set apptOutlook = Nothing


End Sub

Je dois offrir la possibilité dans une interface le moyen de modifier et de supprimer l'un de ces rendez vous. S'il vous plait, même si vous n'êtes pas sur d'avoir la réponse, laissez moi quelques pistes, adresses internet ou bout de code susceptible d'avoir un lien avec ce que je fais.

Merci d'avance

10 réponses

DarkCid Messages postés 195 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 26 octobre 2009 1
25 mars 2005 à 08:57
Yaoh !

Tout le plaisir fut pour moi

Dans mon cas, cela peut paraître bête mais mes variables sont des string ke g construites pour k'elles ressemebles à ça : "jj/mm/aaaa 00:00"

Attention ! Ne met pas les secondes sinon il va geuler.

Sinon, je viens de mettre une source à ce sujet ki s'appelle Outlook : Envoi de mail et ajout, modification et suppression de rdv dans le calendrier, tu pourra aller y jeter un coup d'oeil
3
DarkCid Messages postés 195 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 26 octobre 2009 1
25 mars 2005 à 09:23
dans ce cas, tu devrais construire ta chaine de caractère toi-meme, par exemple avec la fonction datepart ki extraie une partie d'une date
Syntaxe = DatePart(constante,Date)

Constante définit k'elle partie tu veux :
"yyyy" = année
"m" = mois
"d" = jour
"h" = heur
"n" = minute
"s" = seconde
3
DarkCid Messages postés 195 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 26 octobre 2009 1
25 mars 2005 à 10:10
Essaye de mettre tes variables DbtRecherche et FinRecherche en String.
En théorie (g horreur de cette expression mais bon), il ne devrait pas de remttre les secondes.

Sinon, pour te donner un exemple de comment utiliser datepart :

DbtRecherche = DatePart("d",Date.Value) & "/" & DatePart("m",Date.Value) & "/" & DatePart("yyyy",Date.Value) & " " & DatePart("h",HDbt.Value) & ":" & DatePart("n",HDbt.Value)

La partie en orange, c ke je suis pas sûr à 100% ke datepart marche avec une variable juste heure, à tester.

Mais bon, ne t'en fait pas, depuis ke l'informatique existe, les dates ont tjrs fait chier nous autres programmeurs et c'est pas demain la veille ke sa changera. Tout le monde a un jour eu une crise de nerf face à une date (moi par exemple dès ke je vois la date d'anniversaire de ma copine, hop crise de nerf pour trouver un cadeau... enfin là je crois ke je m'écarte du sujet )
3
DarkCid Messages postés 195 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 26 octobre 2009 1
24 mars 2005 à 14:35
Yaoh !

Dim outlk As Outlook.Application
Dim appt As Outlook.AppointmentItem
Dim Nom As Outlook.NameSpace
Dim Calend As Outlook.Items

Set outlk = CreateObject("Outlook.Application")
Set Nom = outlk.GetNameSpace("MAPI")
Set Calend = Nom.GetDefaultFolder(olFolderCalendar).Items
Calend.Sort "[Start]"
Calend.IncludeRecurrences = True
Set appt = Calend.Find("[Start] >= """ & datedébutrecherche & """ and [Start] <= """ & datefinrecherche & """")
While TypeName(appt) <> "Nothing"

blabla

set appt = calend.findnext
Wend

dans le blabla de la boucle while, tu as deux choix :

si tu veu modifier un rdv dont tu connais le nom, la date...

if appt.Subject (ou aut chose, ici je prends l'exemple du texte du rdv) = ce ke tu recherche then
appt.subject = nouveau subject
appt.save
end if

si tu veu supprimer

if appt.Subject (ou aut chose, ici je prends l'exemple du texte du rdv) = ce ke tu recherche then
appt.delete
end if

Voilà, j'espère t'avoir aider !
2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BrianBellamy Messages postés 24 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 1 avril 2005
25 mars 2005 à 08:52
Merci!!! Vraiment un grand merci à toi!! Pour un peu, je t'embrasserai mais bon... une poignée de main suffira je pense
La commande supprimer marche à merveille mais je voulais te demander une chose pour la modification: la variable "datedébutrecherche", peux tu me donner son contenu parce que apparement, la manière dont je lui donne la date ( datedébutrecherche = VBA.Format(Date.Value & Space(1) & HDbt.Value, "Short Date") ) ne fonctionne pas.

Voila j'ose encore te déranger..
En tout cas, merci énormément pour le poids que tu m'as déjà enlevé!!!
0
BrianBellamy Messages postés 24 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 1 avril 2005
25 mars 2005 à 09:17
Ah.. donc mon problème viendrait des secondes... mais malgré le fait que je ne lui propose dans ma combo box des horaires du type "08:00", "09:00" etc.. lors de la lecture du programme, il convertit ce hh/mm en hh/mm/ss d'après ce que je vois...
0
BrianBellamy Messages postés 24 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 1 avril 2005
25 mars 2005 à 09:59
Pourrais tu être un tout petit peu plus précis s'il te plait.. voici mon code:

Dim OlApp As Outlook.Application
Dim Nom As Outlook.NameSpace
Dim Calend As Outlook.Items
Dim Appt As Outlook.AppointmentItem
Dim DbtRecherche As Date
Dim FinRecherche As Date

Set OlApp = CreateObject("Outlook.Application")
Set Nom = OlApp.GetNamespace("MAPI")


DbtRecherche = Date.Value & Space(1) & HDbt.Value
FinRecherche = Date.Value + 1 & Space(1) & Hfin.Value


Set Calend = Nom.GetDefaultFolder(olFolderCalendar).Items
Calend.Sort "[Start]"
Calend.IncludeRecurrences = True


Set Appt = Calend.Find("[Start] >= """ & DbtRecherche & """ and [Start] <= """ & FinRecherche & """")


While TypeName(Appt) <> "Nothing"

If Appt.start = DbtRecherche Then
Appt.Display
End If

Set Appt = Calend.FindNext

Wend


End Sub

A quelle variable suis-je sensé donner la variable DatePart? DbtRecherche et FinRecherche ou HDbt et Hfin?

Merci d'avance
0
BrianBellamy Messages postés 24 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 1 avril 2005
25 mars 2005 à 10:36
LOL! effectivement les dates sont un réel problème mais cela ne l'est plus pour mon programme désormais!! encore merci!!!

voici le code après changement:

Set OlApp = CreateObject("Outlook.Application")
Set Nom = OlApp.GetNamespace("MAPI")


DbtRecherche = DatePart("d", DDate.Value) & "/" & DatePart("m", DDate.Value) & "/" & DatePart("yyyy", DDate.Value) & " " & DatePart("h", HDbt.Value) & ":" & DatePart("n", HDbt.Value)
FinRecherche = DatePart("d", DDate.Value) & "/" & DatePart("m", DDate.Value) & "/" & DatePart("yyyy", DDate.Value) & " " & DatePart("h", HFin.Value) & ":" & DatePart("n", HFin.Value)


Set Calend = Nom.GetDefaultFolder(olFolderCalendar).Items
Calend.Sort "[Start]"
Calend.IncludeRecurrences = True


Set Appt = Calend.Find("[Start] >= """ & DbtRecherche & """ and [Start] <= """ & FinRecherche & """")


DbtRecherche = DDate.Value & Space(1) & HDbt.Value
FinRecherche = DDate.Value & Space(1) & HFin.Value
(obligatoire, sinon il me remet un type mismatch avec le "Appt.start" d'en dessous)


While TypeName(Appt) <> "Nothing"

If Appt.start <> DbtRecherche Then
Appt.Display
End If

Set Appt = Calend.FindNext
Wend


End Sub

Dis moi, tu ne saurais pas comment envoyer les demandes sur un autre calendrier que celui par défaut par hasard?? parce que ce sera probablement le prochain sujet d'un de mes prochains messages sur le forum!

Merci beaucoup et j'espère qu'une prochaine fois, j'arriverais a te rendre l'appareil
0
DarkCid Messages postés 195 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 26 octobre 2009 1
25 mars 2005 à 10:43
Malheureusment non.
Mais si tu trouves fait mi signe, sa m'intéresse, meme si mon problème actuel n'est pas de faire des modif sur un aut calendrier, mais carrément sur un calendrier d'un autre poste de mon réseau !!
0
BrianBellamy Messages postés 24 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 1 avril 2005
25 mars 2005 à 10:59
Ah d'accord... eh bien bon courage à toi! Je ne t'oublie pas si jamais j'ai la moindre piste, je t'enverrai ca(dans un msg, forum...)

Bonne continuation!!
0
Rejoignez-nous