Outlook importation outlook dans excel

naf naf

XLDnaute Nouveau
bonjour,
j'explique mon probleme :
tous les vendredi j'envoie un avis de RDV outlook aux memes personnes
elles ont jusqu'au jeudi soir pour repondre : accepté , refusée ...

Je souhaiterais le vendredi, lancer une macro afin de recuperer sous forme de tableau excel
1 colonne pour les noms des personnes et 2 colonnes pour avoir leur réponse ( Accepté ou refusée, ...)

J'espere avoir était clair, je débute sur le forum
Merci pour votre aide
 

soan

XLDnaute Barbatruc
Inactif
Bonjour naf naf,

je ne peux pas t'aider pour Outlook, mais c'est inutile de faire 2 colonnes
"accepté" et "refusé" puisque l'un est le contraire de l'autre : ce sera plus
clair de faire une seule colonne "accepté" où tu coches avec "x" quand
c'est accepté et tu laisses vide quand c'est refusé ; ou éventuellement
l'inverse : une seule colonne "refusé" où tu coches avec "x" quand c'est
refusé et tu laisses vide quand c'est accepté.

bien sûr, ce ne sont que des suggestions : après, c'est à toi de choisir
selon tes goûts ; donc si tu préfères quand même 2 colonnes : ok.

j'espère qu'un autre intervenant pourra t'apporter une solution. 🍀


soan
 

zebanx

XLDnaute Accro
Bonjour nafnaf, soan, le forum

Un lien qui semble approcher le sujet

Et un autre qui utilise un code VBA mais pour retourner un mail.
Cela donne toutefois des idées.

xl-ment
 

naf naf

XLDnaute Nouveau
Bonjour nafnaf, soan, le forum

Un lien qui semble approcher le sujet

Et un autre qui utilise un code VBA mais pour retourner un mail.
Cela donne toutefois des idées.

xl-ment
merci c'est exactement le premier lien a la difference que je voudrai le faire a partir de VBA excel
 

zebanx

XLDnaute Accro
Désolé, je ne sais pas faire. Il faudra regarder sur le net, éventuellement avec les termes anglais usuels (attendees meeting, accepted/declined), ce que j'ai un peu fait mais pas trouvé beaucoup sur le sujet.

Bonne recherche.
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, naf naf, zebanx, soan

=>naf naf
Je ne pourrai tester ce code que demain.
(pas d'Outlook sur ce PC)
Code à mettre dans Excel (puisque telle est la demande)
Pré-requis: voir commentaire dans le code VBA
VB:
Sub test_OL_2_XL()
'=>(activer la référence à la librairie Outlook dans VBE => Outils/Référence)<=
Dim oOL As New Outlook.Application, oNS As Outlook.Namespace
Dim oAppointments As Object
Set oNS = oOL.GetNamespace("MAPI")
Set oAppointments = oNS.GetDefaultFolder(olFolderCalendar) 'calendrier par défaut
j = 2
[A1:C1] = [{"Participants","Statut","Type Destinataire"}]
For Each oAppointmentItem In oAppointments.Items
For Each oRcp In oAppointmentItem.Recipients
Cells(j, 1).Resize(, 3) = Array(oRcp.Name, oRcp.MeetingResponseStatus, oRcp.Type)
j = j + 1
Next
Next
End Sub
 

naf naf

XLDnaute Nouveau
Bonsoir le fil, naf naf, zebanx, soan

=>naf naf
Je ne pourrai tester ce code que demain.
(pas d'Outlook sur ce PC)
Code à mettre dans Excel (puisque telle est la demande)
Pré-requis: voir commentaire dans le code VBA
VB:
Sub test_OL_2_XL()
'=>(activer la référence à la librairie Outlook dans VBE => Outils/Référence)<=
Dim oOL As New Outlook.Application, oNS As Outlook.Namespace
Dim oAppointments As Object
Set oNS = oOL.GetNamespace("MAPI")
Set oAppointments = oNS.GetDefaultFolder(olFolderCalendar) 'calendrier par défaut
j = 2
[A1:C1] = [{"Participants","Statut","Type Destinataire"}]
For Each oAppointmentItem In oAppointments.Items
For Each oRcp In oAppointmentItem.Recipients
Cells(j, 1).Resize(, 3) = Array(oRcp.Name, oRcp.MeetingResponseStatus, oRcp.Type)
j = j + 1
Next
Next
End Sub
Merci , tu es vraiment super.
Par contre pas compris ou je défini le calendrier et la date de ce RDV que je veux recuperer les participants
je sais je suis mauvais.
Actuellement j'ouvre le RDV je fais suivi copier dans le presse papier et colle dans une cellule excel
 

Staple1600

XLDnaute Barbatruc
Re

Comme indiqué dans le commentaire du code
Dans cet exemple, on pointe sur le calendrier par défaut (du compte par défaut)
Et comme je ne peux pas tester ce soir
Il faudra attendre demain (j'ai Outlook au boulot)
ou qu'un membre du forum utilisant Outlook teste ce bout de code que j'ai pondu ex nihilo après quelques minutes de G••gling.
;)
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

=>naf naf
J'ai eu le temps de faire des tests à minima
(faut bien que je bosse un peu aussi ;))
Donc ci-dessous test OK ( à partir d'Excel)
Pré-requis: activer la référence à la librairie Outlook dans VBE
(ALT+F11 => Outils/Références)
Ce code ne fait qu'une seule chose: exporter la liste des réunions du calendrier par défaut d'Outlook (en ne prenant que les noms des participants qui ont accepté la réunion)
Test OK sur mon PC de boulot (Excel 2010 et Exchange)
NB: Outlook est ouvert quand je lance la macro à partir d'Excel.
VB:
Sub test_OL_RDV_vers_Excel()
Dim oOL As New Outlook.Application, oNS As Outlook.Namespace
Dim oCAL As Object, oLRDV As Object, oRV As Object, obj As Object, tmp$, Liste$, j&, k%

Set oNS = oOL.GetNamespace("MAPI")
Set oCAL = oNS.GetDefaultFolder(olFolderCalendar)

Set f = ActiveSheet
f.[A1:E1] = _
Array("Organisateur", "Date", "Objet", "Début Réunion", "Participants = Accepté"): j = 2
Set oLRDV = oCAL.Items: oLRDV.Sort "[Start]": oLRDV.IncludeRecurrences = True
Application.ScreenUpdating = False
For Each oRV In oCAL.Items
If oRV.Class = olAppointment Then
For Each obj In oRV.Recipients
If obj.MeetingResponseStatus = 3 Then
tmp = tmp & obj.Name & ",": Liste = Left(tmp, Len(tmp) - 1)
End If
Next
With oRV
f.Cells(j, 1).Resize(, 4) = Array(.Organizer, .CreationTime, .Subject, .Start)
End With
f.Cells(j, 5) = Liste
j = j + 1
End If
Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
313 316
Messages
2 097 096
Membres
106 836
dernier inscrit
ChristopheDF