jldancet
Messages postés21Date d'inscriptionlundi 14 août 2006StatutMembreDernière intervention17 février 2007
-
9 nov. 2006 à 13:33
Nicals -
18 févr. 2014 à 16:57
Bonjour,
J'ai un bout de code qui me permet d'envoyer de Excel dans Outlook calendrier un paquet de rendez-vous, le probleme est qu'ils vont toujours dans le calendrier par defaut, j'aimerai offrir un choix d'un calendrier à l'utilisateur.
Si quelqu'un hyperdoué pouvait me passer une solution ce serait géant.
Dans cette attente
Fianchetto
Messages postés41Date d'inscriptiondimanche 13 février 2005StatutMembreDernière intervention14 décembre 2006 9 nov. 2006 à 13:55
Tu as une fonction qui s'appelle getDefaultFolder, ptet il y en a aussi une te permettant de spécifier autre chose que les répertoires par défaut. En tout cas, ce petit lien vers la msdn pourrait peut-etre t'aider.
jldancet
Messages postés21Date d'inscriptionlundi 14 août 2006StatutMembreDernière intervention17 février 20071 9 nov. 2006 à 15:41
Merci,
j'ai utilisé getdefaultfolder, mais en plus il faut lui mettre un nom quelque part si on veut aller vers un calendrier précis, je vais surement trouver dans le raccourci que tu m'as passé.
Avec mes salutations
JL
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 29 nov. 2006 à 10:37
Je ne connaissais pas ces méthodes, mais si en regardant dans l'aide, Il y a une condition avant cet appel
......
myRecipient.Resolve
If myRecipient.Resolved Then
Set myCalendarFolder = myNamespace.GetSharedDefaultFolder(myRecipient, olFolderCalendar)
End If
......
J'imagine que cette condition est là pour éviter l'erreur.
Peut-être que le nom que tu utilises "Geneve, User1" n'est pas le bon ?
Peut-être manque-t-il un espace ou quelque chose comme ça, d'où l'erreur (?)
Peut-être que ce "user" est protégé et que tu n'as pas les droits d'y accéder (?)
J'avais fait des tests au bureau, mais je n'ai pas les mêmes conditions que toi... Il n'y a pas de calendrier partagé dans le réseau, seulement des tas de répertoires et sous-répertoires.
MPi
Vous n’avez pas trouvé la réponse que vous recherchez ?
jldancet
Messages postés21Date d'inscriptionlundi 14 août 2006StatutMembreDernière intervention17 février 20071 29 nov. 2006 à 10:51
Je te remercie pour ta réaction rapide.
Le nom est OK, et les droits aussi, je voulais juste voir avec toi s'il y avait une grosse bourde bien visible dans mon code, apparement je vais aller sur ce site et faire des essais jusqu'à ce que réussite s'en suive, je ne manquerai pas de te communiquer les resultats surtout si ils sont positifs.
jldancet
Messages postés21Date d'inscriptionlundi 14 août 2006StatutMembreDernière intervention17 février 20071 12 nov. 2006 à 18:39
Bonsoir
je reviens sur mon probleme de choix de calendrier, j'ai fait une modification pour modifier le "Calendrier_PR", apparement il e trouve mais ca termine en cata dans la ligne "SET MYITEM" en couleur.
Voici le code, il lit un tableau excel et cree des rendez-vous, si tu peux trouver ce qui manque, je pense que mes maux de tete seront soulages-
D'avance merci
Jean-Louis
Sub SYNCHRO_PR()
On Error GoTo erreurapp
Call SupprimerRDVPR
'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 myCalendar As Outlook.Items
Dim Cell As Range
Dim deleg1
Dim D As Long
Dim premlivide As Long
Set myOlApp = CreateObject("outlook.application")
Set myCalendar = myOlApp.GetNamespace("MAPI").GetDefaultFolder(olFolderCalendar).Folders.Item("Calendrier_PR").Items
jldancet
Messages postés21Date d'inscriptionlundi 14 août 2006StatutMembreDernière intervention17 février 20071 13 nov. 2006 à 10:26
Bonsoir
je reviens sur mon probleme de choix de calendrier, j'ai fait une modification pour modifier le "Calendrier_PR", apparement il e trouve mais ca termine en cata dans la ligne "SET MYITEM" en couleur.
Voici le code, il lit un tableau excel et cree des rendez-vous, si tu peux trouver ce qui manque, je pense que mes maux de tete seront soulages-
D'avance merci
Jean-Louis
Sub SYNCHRO_PR()
On Error GoTo erreurapp
Call SupprimerRDVPR
'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 myCalendar As Outlook.Items
Dim Cell As Range
Dim deleg1
Dim D As Long
Dim premlivide As Long
Set myOlApp = CreateObject("outlook.application")
Set myCalendar = myOlApp.GetNamespace("MAPI").GetDefaultFolder(olFolderCalendar).Folders.Item("Calendrier_PR").Items
jldancet
Messages postés21Date d'inscriptionlundi 14 août 2006StatutMembreDernière intervention17 février 20071 16 nov. 2006 à 13:12
Bonjour, je reviens avec mes problemes outlook, avec ce que tu m'as donné tout marche OK en monoposte, maintenant le probleme est que je n'arrive pas à atteindre des calendriers partagés sur un réseau, il y a 2 rubriques : mes calendriers (je peux tous les atteindre) et autres calendriers qui sont des calendriers partagés sur une machine réseau, as-tu une idée stp.
Merci d'avance
jldancet
Messages postés21Date d'inscriptionlundi 14 août 2006StatutMembreDernière intervention17 février 20071 29 nov. 2006 à 07:21
Bonjour
Je reviens avec mes soucis de calendrier partagé.
J'ai pu piocher des trucs interessants dans MSDN, la sub permet l'affichage du calendrier partagé et ca marche, par contre pour ce qui est de l'enregistrement d'appointmentsitem c'est une autre histoire, il manque toujours un objet ou un type n'est pas accepté.
ci-dessous, la sub qui affiche, suivie de ma sub (derivée de la premiere) qui essaye d'enregistrer un rendezvous.
Je te remercie d'avance de ton précieux concours
Amicalement
¨Jean-Louis
Sub ResolveName()
Dim myOlApp As Outlook.Application
Dim myNamespace As Outlook.NameSpace
Dim myRecipient As Outlook.Recipient
Dim CalendarFolder As Outlook.MAPIFolder
Set myOlApp = CreateObject("Outlook.Application")
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myRecipient = myNamespace.CreateRecipient("Dan Wilson")
myRecipient.Resolve
If myRecipient.Resolved Then
Call ShowCalendar(myNamespace, myRecipient)
End If
End Sub
Sub ShowCalendar(myNamespace, myRecipient)
Dim CalendarFolder As MAPIFolder
Set CalendarFolder = _
myNamespace.GetSharedDefaultFolder _
(myRecipient, olFolderCalendar)
CalendarFolder.Display
End Sub
sub Mon_code()
Dim myOlApp As New Outlook.Application
Dim myItem As Outlook.AppointmentItem
Dim myNamespace As Outlook.Namespace
Dim myRecipient As Outlook.Recipient
Dim myCalendar As Outlook.Items
Dim myCalendarFolder As Outlook.MAPIFolder
Set myOlApp = CreateObject("outlook.application")
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myRecipient = myNamespace.CreateRecipient("Geneve, User1")
myRecipient.Resolve
Set myCalendarFolder = myNamespace.GetSharedDefaultFolder(myRecipient, olFolderCalendar) <---- plante ici
Set myItem = myCalendarFolder.Add(olAppointmentItem)
With myItem
.MeetingStatus = olNonMeeting
.AllDayEvent = True
.Categories = "TEST"
.Location = "TEST LOCATION"
.ReminderSet = False
.ReminderSoundFile = False
.Start = "01.01.2007"
.Subject = "Sujet test"
.Save
End With
Set myItem = Nothing
end sub
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 29 nov. 2006 à 12:05
Tiens, un exemple que je viens de trouver:
Sub CreateOtherUserAppointment()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objFolder As Outlook.MAPIFolder
Dim objDummy As Outlook.MailItem
Dim objRecip As Outlook.Recipient
Dim objAppt As Outlook.AppointmentItem
Dim strMsg As String
Dim strName As String
On Error Resume Next
' ### name of person whose Calendar you want to use ###
strName = "FlaviusJ"
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objDummy = objApp.CreateItem(olMailItem)
Set objRecip = objDummy.Recipients.Add(strName)
objRecip.Resolve
If objRecip.Resolved Then
On Error Resume Next
Set objFolder = _
objNS.GetSharedDefaultFolder(objRecip, _
olFolderCalendar)
If Not objFolder Is Nothing Then
Set objAppt = objFolder.Items.Add
If Not objAppt Is Nothing Then
With objAppt
.Subject = "Test Appointment"
.Start = Date + 14
.AllDayEvent = True
.Save
End With
End If
End If
Else
MsgBox "Could not find " & Chr(34) & strName & Chr(34), , _
"User not found"
End If
Set objApp = Nothing
Set objNS = Nothing
Set objFolder = Nothing
Set objDummy = Nothing
Set objRecip = Nothing
Set objAppt = Nothing
End Sub
jldancet
Messages postés21Date d'inscriptionlundi 14 août 2006StatutMembreDernière intervention17 février 20071 1 déc. 2006 à 08:06
Bonjour,
je me heurte à un nouveau probleme : celui de supprimmer des appointmentsitems dans un calendrier partagé, voici mon code
le calendrier est trouvé mais je n'arrive pas à atteindre les items :
Sub supprimerRDVPR_SHR()
Application.ScreenUpdating = False
Dim objApp As Outlook.Application
Dim objNS As Outlook.Namespace
Dim objFolder As Outlook.MAPIFolder
Dim objDummy As Outlook.MailItem
Dim objRecip As Outlook.Recipient
Dim objAppt As Outlook.AppointmentItem
Dim objMyCalendar As Outlook.Items
Dim strMsg As String
Dim strName As String
Dim calendrier
Dim categorie
Dim partage
Dim dele
dele = 0
On Error Resume Next
Sheets("MACRO").Select 'feuille XLS contenant les parametres
calendrier = [d90] ' nom du calendrier partagé
categorie = [e90] ' categorie a supprimer
partage = [A90] ' calendrier partage oui ou non
strName = calendrier
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objDummy = objApp.CreateItem(olMailItem)
Set objRecip = objNS.CreateRecipient(strName)
objRecip.Resolve
If objRecip.Resolved Then
On Error Resume Next
Set objFolder = _
objNS.GetSharedDefaultFolder(objRecip, _
olFolderCalendar)
Set objMyCalendar = objApp.GetNamespace("MAPI").objFolder.Folders.Item(calendrier).Items
If Not objFolder Is Nothing Then
Set objAppt = objMyCalendar.Items ' ------> à l'execution donne : NOTHING alors qu'il y a 900 lignes.
If Not objAppt Is Nothing Then
For Each objAppt In objFolder
With objAppt
If Categories <> categorie Then GoTo suite
.Delete
dele = dele + 1 'comptage des enregistrements supprimés
suite:
End With
Set objAppt = Nothing
Next objAppt
If dele = 0 Then GoTo fin 'si dans cette boucle je n'ai rien supprime c'est terminé
Call supprimerRDVPR_SHR 'j'ai supprime des enregistrements je vais voir s'il y en a d'autres
fin:
End If
End If
Else
MsgBox "Could not find " & Chr(34) & strName & Chr(34), , _
"User not found"
End If
Set objApp = Nothing
Set objNS = Nothing
Set objFolder = Nothing
Set objDummy = Nothing
Set objRecip = Nothing
Set objAppt = Nothing
End Sub
J'espere que tu vas trouver un gros truc qui va te faire mal aux yeux.
Avec mes remerciements anticipés
Jean-Louis
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 1 déc. 2006 à 11:21
Aucune idée lumineuse et aucune façon pour moi de tester parce que je n'ai pas ce genre de configuration Outlook ici...
Par contre, je me demande ce qu'est Categories...
If Categories <> categorie Then GoTo suite
Que valent ces 2 variables avant le goto suite ?
Quand j'utilise ce genre de collection d'objets, j'utilise la fenêtre "Espions" qui me permet de voir quels sont les objets disponibles, si je passe par le bon objet pour me rendre à un autre... En mettant un point d'arrêt juste avant ou après la ligne en rouge, tu pourrais voir ce que contient
objMyCalendar
objFolder
objFolder.Folders
objFolder.Folders.Item(calendrier)
... etc