Avatar billede Nicolai Nybegynder
04. august 2003 - 16:02 Der er 13 kommentarer og
1 løsning

Hente information fra Outlook over i Excel.

Jeg har brug for at få hentet information fra Outllok til Excel.

Helt konkret har jeg brug for følgende:

I Excel har jeg en dato og klokkeslet registret. Desuden har jeg en liste over en masse personer som sidder på samme netværk og samme Exchange Server som mig. Alle personer har delt deres kalender så jeg kan læse den.

Jeg ønsker nu at en VBA kode skal oprette et sheet i Excel der fortæller mig hvad de forskellige personer har booket ind i deres kalender på det pågældene (i Excel nævnte) tidspunkt (Subject-info). Jeg ønsker samtidig at få at vide hvornår den pågældende aftale hos den enkelte er slut.

Jeg er rimelig habil i VBA, så jeg behøver ikke nogen lang udredning. :-) Jeg er bare kørt fast og kan ikke komme i tanke om hvordan jeg kan løse dette.

Jeg er naturligvis interesseret i at koden afvikles hurtigst muligt i applikationen.
Avatar billede Nicolai Nybegynder
04. august 2003 - 16:04 #1
Måske bør det tilføjes at det er Office 2000 jeg anvender...
Avatar billede ocp Nybegynder
04. august 2003 - 16:14 #2
Noget i denne stil?

'Lav en MAPI-session:
Set gSession = CreateObject("MAPI.Session")
'Og log på:
gSession.Logon "MS Exchange Settings"
'Find benyt den korrekte adressebog:
Set addList = gSession.AddressLists("Global Address List")
'Og den korrekte mailgruppe:
Set addMailList = addList.AddressEntries("DK - All Users")

'Og kør igennem hele mailgruppen:
For Each addEntry In addMailList.Members
iFreeBusyCode = addEntry.GetFreeBusy(Now, DateAdd("n", 1, Now), 1)
next
Avatar billede ocp Nybegynder
04. august 2003 - 16:15 #3
Jeg går ud fra at du selv finder objekttyperne?
Avatar billede Nicolai Nybegynder
04. august 2003 - 16:23 #4
Har du dem lige ved hånden? Eller måske har du en eksempel kode et aller andet sted?

Jeg kan godt følge det du skriver, men da Outlook/Exchange og VBA interaktionen er lidt ny for mig, vil jeg da gerne have det uddybet en smule.. Hvis du har tid... :-)
Avatar billede ocp Nybegynder
04. august 2003 - 16:30 #5
Du kan desværre ikke få min kode, MEN jeg fandt et eksempel der forhåbentlig kan bringe dig på sporet af hvad det er jeg har lavet:

http://support.microsoft.com/?kbid=172093
Avatar billede ocp Nybegynder
04. august 2003 - 16:33 #6
Jeg bliver desværre nødt til at smutte nu, men jeg vender lige tilbage senere med en hjælpende hånd, hvis det er nødvendigt.
Avatar billede Nicolai Nybegynder
04. august 2003 - 16:38 #7
Takker... Jeg har fået det til at virke lidt, men har desværre ikke helt fattet hvordan jeg henter oplysninger om hvad den enkelte person laver og hvornår han/hun er færdig med det...
Avatar billede Nicolai Nybegynder
05. august 2003 - 14:39 #8
Har du nogen idé om hvordan denne information skaffes? Jeg taler om den infromation der er tilgængelig i det øjeblik du opretter en ny aftale og går ind under Schedule (el. Attendee Avaliability i Outlook 97). Herinde skriver du navnet på en af dine kollegaer, hvorefter en bjælke kommer op. Holder man så musemarkøren hen over en af bjækerne, fremkommer information omkring subject og start og sluttidspunkt. Det er denne information jeg er interesseret i at få fingre i.

How to?? :o)
Avatar billede ocp Nybegynder
06. august 2003 - 10:56 #9
Dette skulle give dig alle aftaler for en bestemt bruger (der ligger i addEntry):

'Declarations:
Dim rec As Recipient
Dim oFolder As MAPIFolder
Dim appt As AppointmentItem
Set ns = objOutlook.GetNamespace("MAPI")


'Insert in "entry"-loop:
    Set rec = ns.CreateRecipient(addEntry.Name)
    rec.Resolve
    Set oFolder = ns.GetSharedDefaultFolder(rec, olFolderCalendar)
    For Each appt In oFolder.Items
        MsgBox appt.Subject
    Next
Avatar billede Nicolai Nybegynder
06. august 2003 - 14:46 #10
Tak for al din hjælp, da har virkelig hjulpet mig på vej.

Men hvordan sørger jeg for at kun subject på den aftale der er registeret på "NOW" tidspunktet kommer frem. Jeg er interesseret i at finde ud af hvad den pågældende person laver i dette øjeblik og hvornår personen er færdig med den aktivitet han/hun laver nu.

Jeg lukker spørgsmålet og giver dig fuld skrue, men vil sætte pris på hvis du kan hjælpe med denne sidste ovenstående ting... :-)
Avatar billede Nicolai Nybegynder
06. august 2003 - 14:54 #11
Og så kan jeg af en eller anden grund ikke hente information fra mere end 12 personer ad gangen. Så kommer programmet ud med en fejl:

Run-time error - 2147467259 (80004005)
Collaboration Data Object - [E_FAIL(80004005)]

Kender du umiddelbart noget til denne type fejl??
Avatar billede ocp Nybegynder
06. august 2003 - 15:29 #12
Jeg gætter på at det måske har noget at gøre med om der er sjov tegn i navnet eller hvorvidt CDO kan finde ved personen entydigt?
Avatar billede ocp Nybegynder
06. august 2003 - 15:57 #13
I stedet for "for each appt..." kan du nøjes med dette:

Set appt = oFolder.Items.Find("[Start] <= """ & Format(Now, "long date") & """ and [End]>""" & Format(Now, "long date") & """")

...og tak for pts :D
Avatar billede ocp Nybegynder
06. august 2003 - 16:06 #14
Sorry... du skal skrive "Format(Now, "dd/mm/yyyy hh:nn")" og IKKE "Format(Now, "long date")".
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging