Avatar billede Nicolai Nybegynder
08. august 2003 - 07:25 Der er 17 kommentarer og
1 løsning

Information fra Exchange server in i VBA-kode i Excel.

Hej.

Jeg har for nyligt stillet at spørgsmål der ligner dette en lille smule, men jeg føler ikke rigtig at svaret på sidste spørgsmål ahr været fyldetsgørende nok. Derfor stiller jeg et nyt spørgsmål der er en anelse mere præcist.

Jeg har brug for at få informationer fra en Exchangeserver ind i Excel når jeg kører noget VBA kode fra Excel (2000). De personer jeg ønsker at få information fra har givet mig alle rettigheder til at se i deres kalender.

Et uddrag af min kode ser p.t. således ud:

MyMailGroup = Range("G6")

Set gSession = CreateObject("MAPI.Session")

gSession.Logon "Outlook"

Set addList = gSession.AddressLists("Global Address List")
Set addMailList = addList.AddressEntries(MyMailGroup)

CurrentRowValue = 2

For Each addEntry In addMailList.Members
    iFreeBusyCode = addEntry.GetFreeBusy(Now, DateAdd("n", 1, Now), 1)
    iFreeNameCode = addEntry.Name(Now, DateAdd("n", 1, Now), 1)
   
    Range("A" & CurrentRowValue) = iFreeNameCode
    Range("B" & CurrentRowValue) = iFreeBusyCode
   
    CurrentRowValue = CurrentRowValue + 1
Next


Med ovenstående kode får jeg navn samt denne specielle free/busy code ind der fortæller om den enkeltes "ledighed" p.t. Alt ender, som du jo tyudeligt fremgår, blot i en tabel i Excel.

Jeg er dog ydermere interesseret i at får fat i subject teksten på den appointment den pågældende person har nu, samt hvornår den nuværende appointment hos person x slutter. Hvordan skriver jeg dette ind i koden?

Et lille tillægsspørgsmål:

Hvis jeg i stedet for at køre igennem hele mail listen, godt kender navnene på dem jeg ønsker at få informationen fra, hvordan håndtere jeg så den?

På forhånd tak for hjælpen... Det haster lidt...
Avatar billede hoejrup Nybegynder
08. august 2003 - 07:33 #1
Det haster åbenbart ikke med at lukke alle dine gamle spørgsmål.

Link: http://www.eksperten.dk/bruger.phtml?sort=&order=desc&start=0&catid=0&q=&navn=nicolailund&option=22

/per
Avatar billede Nicolai Nybegynder
08. august 2003 - 07:47 #2
Sorry.. Men hvis du kigger på de forskellige spørgsmål var det faktisk kun et af spørgsmålene der rent faktisk var kommet et svar på. Resten var kommentarer...

Men for at undgå at de bare skal ligge og hænge har jeg nu lukket alle mine spørgsmål.. Så nu skulle der være ryddet op... Men man skal sku holde tungen lige i munden her. Nogle gange bliver man røflet for at lukke for tidligt og andre gange for sent... Pyha, man må sku lære og begå sig... :o)

Tak for tippet... :o)
Avatar billede kedde65 Praktikant
08. august 2003 - 08:53 #4
Hvad er det for data du gerne vil have ud, og for hvem?

VH CK
Avatar billede Nicolai Nybegynder
08. august 2003 - 09:02 #5
Kedde65: Jeg har brug for at vide "subject" på den aftale den pågældende person har på nuværende tidspunkt (Now). Desuden har jeg behov for at vide hvornår den aftale de har nu (Now) over færdig (EndTime).

Informationen er jo normalt tilgængelig for mig når jeg opretter en aftale i outlook, og så invitere personer til mødet. Idet jeg skriver deres navn i outlook, fremgår en statuslinje der fortæller hvornår de er optaget af andre møder. Hvis jeg holder musen hen over en af disse aftaler kan jeg se start og slut tidspunkt som emnet for aftalen. Det er præcis den information jeg er interesseret i. :o)

I hastighedsårsager skal jeg lige have omskrevet ovenstående kode, så jeg kan spørge direkte efter f.eks. "Hansen, Ole" - så jeg ikke behøver at gå hele min adressbook igennem...
Avatar billede Nicolai Nybegynder
08. august 2003 - 09:03 #6
Somaliomar: Jeg har kigget lidr rundt derinde, men det står ikke helt klart for mig hvilke jeg skal bruge. Kan du hjælpe? :o)
Avatar billede hoejrup Nybegynder
08. august 2003 - 09:26 #7
Hvis du ikke har fået et svar i løbet af 7 dage, så skal du hellere ikke regne med det.
Derefter bør du lukke spørgsmålet.

/per
Avatar billede kedde65 Praktikant
08. august 2003 - 10:09 #8
Jeg skal nok lige lave et eksempel til dig senere på dagen :-)

VH CK
Avatar billede Nicolai Nybegynder
08. august 2003 - 10:28 #9
Super - takker på forhånd for din hjælp...
Avatar billede somaliomar Praktikant
08. august 2003 - 12:35 #10
Du kan starte her:

Dim objSession
Dim objCalendarFolder
Dim objAppointments
Dim objAppointment

Set objSession = CreateObject("MAPI.Session")
objSession.Logon

Set objCalendarFolder = objSession.GetDefaultFolder _
                                  (CdoDefaultFolderCalendar)
                                 
Set objAppointments = objCalendarFolder.Messages

For Each objAppointment In objAppointments
    Debug.Print objAppointment.Subject & " " & _
        objAppointment.StartTime & "-" & _
        objAppointment.EndTime
Next

objSession.Logoff

Set objSession = Nothing
Set objCalendarFolder = Nothing
Set objAppointments = Nothing
Set objAppointment = Nothing
Avatar billede kedde65 Praktikant
08. august 2003 - 16:46 #11
den første udgave her, den henter bare fra den pågældende bruger der er logget ind i systemet. Du skal huske at sætte en reference til Microsoft Outlook 9.0 Object Library for at det virker.

Sub test()
    Dim oApplication As Outlook.Application
    Dim ns As NameSpace
    Dim cal As MAPIFolder
    Dim calApp As Items
    Dim item As AppointmentItem
    Set oApplication = New Outlook.Application
    Set ns = oApplication.GetNamespace("MAPI")
   
    Set cal = ns.GetDefaultFolder(olFolderCalendar)
    Dato = Date
    Set calApp = cal.Items.Restrict("[start]>='#" & Dato & "#'")

    calApp.Sort "[start]"
    calApp.IncludeRecurrences = True
    For Each item In calApp
        If item.Start <= Now And item.End >= Now Then
            MsgBox item.Start & vbCrLf & item.Subject
            exit for
        End If
    Next
   
    Set ns = Nothing
    Set oApplication = Nothing
End Sub

Næste udgave henter fra en specifik bruger.

Sub test()
    Dim oApplication As Outlook.Application
    Dim ns As NameSpace
    Dim cal As MAPIFolder
    Dim calApp As Items
    Dim rec As Recipient
    Dim item As AppointmentItem
    Set oApplication = New Outlook.Application
    Set ns = oApplication.GetNamespace("MAPI")
    Set rec = ns.CreateRecipient(Range("a1").Value)
    Set cal = ns.GetSharedDefaultFolder(rec, olFolderCalendar)
   
    Dato = Date
    Set calApp = cal.Items.Restrict("[start]>='#" & Dato & "#'")

    calApp.Sort "[start]"
    calApp.IncludeRecurrences = True
    For Each item In calApp
        If item.Start <= Now And item.End >= Now Then
            MsgBox item.Start & vbCrLf & item.Subject
            Exit For
        End If
    Next
   
    Set ns = Nothing
    Set oApplication = Nothing
End Sub

VH CK
Avatar billede kedde65 Praktikant
11. august 2003 - 11:51 #12
Har du fundet ud af det, eller er du stødt på problemer?

VH CK
Avatar billede Nicolai Nybegynder
11. august 2003 - 14:42 #13
Jeg får desværre først mulighed for at teste det i morgen (tirsdag) - jeg har desværre ikke været i nærheden af projektet siden fredag. Men jeg skal huske at vende tilbage med status. På forhånd tak for din hjælp.. Du hører fra mig.

Mvh Nicolai
Avatar billede Nicolai Nybegynder
12. august 2003 - 13:41 #14
Det ser ud som om at det virker, men det tager jo 1.000 år for den at søge efter en bestemt modtager. Min Outlook kommer op og siger: Requesting Data from Microsoft Exchange Server....bla bla bla.. Det tager omkring 20-25 sekunder.. Er det muligt at gøre noget ved dette? Den anden kode du gav mig helt i starten får jo fat i Free/Busy koden i løbet af få sekunder.. Det er måske ikke det samme??
Avatar billede kedde65 Praktikant
12. august 2003 - 13:45 #15
Nej det er ikke det samme og du kan ikke gøre noget ved exchange serverens svartid.

VH CK
Avatar billede Nicolai Nybegynder
12. august 2003 - 14:06 #16
OK - det må jeg så bare leve med i koden... Øv øv... :o)

Tak for din hjælp, den har givet mig masser af indsigt i problemstilling, og jeg har nu fået en løsning jeg kan leve lidt med... Men hvis der eksistere andre og hurtigere løsninger, så hører jeg gerne fra dig...
Avatar billede kedde65 Praktikant
12. august 2003 - 14:10 #17
Helt ok, du kan altid kontakte mig på ck@targetgruppen.dk for yderligere hjælp :-)
Avatar billede Nicolai Nybegynder
12. august 2003 - 15:17 #18
Takker... :-)
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