Avatar billede cwc Nybegynder
13. august 2004 - 08:59 Der er 12 kommentarer og
1 løsning

Hvordan oprettes link mellem Excel og Outlook ?

Kan man oprettet et link fra Excel til Outlook ???

I excel har jeg en række datoer med tilhørende bemærkninger, kan disse overføres eller linkes til opgaveblokken i Outlook. Helst således, at hvis en dato ændres i excel, ændres den også automatisk i outlook ?
Avatar billede mugs Novice
13. august 2004 - 09:43 #1
Har ikke meget forstand på det, men prøv at se på dette link:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;220595
Avatar billede Slettet bruger
13. august 2004 - 10:27 #2
Dvs. du har f.eks:

Subject i kolonne A
StartDate i kolonne B
DueDate i kolonne C  ?
Avatar billede cwc Nybegynder
13. august 2004 - 14:34 #3
Efter lange overvejelser, er grundlaget for sprøgsmålet blevet ændret, en link mellem Access og Outlook er ønsket i stedet for... sprøgsmålet flyttes hermed til Access.
Avatar billede Slettet bruger
13. august 2004 - 21:33 #4
Jeg smider den op alligevel, det kan være der er nogen andre der kan få glæde af den. :-)

Løsningen forudsætter:
1. Outlook er startet.
2. Der er en liste af opgaver i det aktive Excelark, sat op som
skrevet ovenfor.

Bemærk:
- Kolonne D bruges til at indeholde et unikt "EntryID" for den enkelte task, så man undgår at oprette den samme opgave flere gange. Skjul Kolonne D hvis du ikke gider se på den.

Følgende kode copy/pastes ind i et Excel kodemodul:
--------------------------

Public Sub GetOutlookTasks()

Dim OlApp As Outlook.Application
Set OlApp = GetObject(, "Outlook.Application")

Dim OlNS As Outlook.NameSpace
Set OlNS = OlApp.GetNamespace("MAPI")

Dim OlTasks As Outlook.MAPIFolder
Set OlTasks = OlNS.GetDefaultFolder(olFolderTasks)

Dim i As Integer

For i = 1 To OlTasks.Items.Count
    ThisWorkbook.ActiveSheet.Cells(i, 1) = OlTasks.Items(i).Subject
    ThisWorkbook.ActiveSheet.Cells(i, 2) = OlTasks.Items(i).StartDate
    ThisWorkbook.ActiveSheet.Cells(i, 3) = OlTasks.Items(i).DueDate
    ThisWorkbook.ActiveSheet.Cells(i, 4) = OlTasks.Items(i).EntryID
Next i


' Luk og sluk
Set OlApp = Nothing
Set OlTasks = Nothing

End Sub

Public Sub CreateOutlookTasks()

On Error GoTo Fejl

Dim OlApp As Outlook.Application
Set OlApp = GetObject(, "Outlook.Application")

Dim OlNS As Outlook.NameSpace
Set OlNS = OlApp.GetNamespace("MAPI")

Dim OlTasks As Outlook.MAPIFolder
Set OlTasks = OlNS.GetDefaultFolder(olFolderTasks)

Dim myOlTask As Outlook.TaskItem

Dim rowCount As Integer
Dim colCount As Integer
Dim maxRows As Integer
Dim i As Integer
Dim j As Integer

maxRows = ActiveSheet.[A1].CurrentRegion.Rows.Count

For i = 1 To maxRows
    If Cells(i, 4) = "" Then  'Task does not exist
        Set myOlTask = OlTasks.Items.Add(olTaskItem)
        With myOlTask
            .Subject = Cells(i, 1)
            .StartDate = Cells(i, 2)
            .DueDate = Cells(i, 3)
            .Save
        End With
    Else ' Task exists already
        ' Find task in Outlook tasklist
        For j = 1 To OlTasks.Items.Count
            If OlTasks.Items(j).EntryID = Cells(i, 4) Then ' Task Found
                With OlTasks.Items(j) 'Update task
                    .Subject = Cells(i, 1)
                    .StartDate = Cells(i, 2)
                    .DueDate = Cells(i, 3)
                    .Save
                End With
            End If
        Next j
    End If
   
Next i

'MsgBox i - 1 & " tasks oprettet i Outlook"

' Luk og sluk
Set OlApp = Nothing
Set OlTasks = Nothing
Set OlNS = Nothing
Set myOlTask = Nothing

'Refresh
GetOutlookTasks

Exit Sub

Fejl:
MsgBox "Der opstod en fejl. Noter fejlen og spørg en eller anden på www.eksperten.dk :-) "


End Sub
--------------------------
Avatar billede Slettet bruger
13. august 2004 - 21:34 #5
For at lukke spørgsmålet skal du selv oprette et svar og acceptere dit eget svar.
Avatar billede bak Forsker
13. august 2004 - 21:50 #6
Flot svar, Blackadder. Den napper jeg lige :-)
Avatar billede bak Forsker
13. august 2004 - 22:15 #7
ps. hvis du lige laver det nummer her i begge subs og sætter reference til outlook behøver outlook ikke være åben.

Dim OlApp As New Outlook.Application
''Set OlApp = GetObject(, "Outlook.Application")
Avatar billede Slettet bruger
13. august 2004 - 22:17 #8
Ok, den kendte jeg ikke, tak for det :-)
Ellers kan man vel bruge CreateObject metoden ?
Avatar billede bak Forsker
13. august 2004 - 22:24 #9
yeps, en anelse langsommere, men til gengæld får ikke problemer med "missing references" når man kører koden på en maskine der har en andet ofice version.
Faktisk er det nok det smarteste at gøre ved outlook, da den er beregnet til at køre multisessioner...men fordelen ved New-metoden er mens du skriver koden har du alle metoder og properties tilrådighed
Avatar billede cwc Nybegynder
16. august 2004 - 13:46 #10
Lukkes...
Avatar billede hugopedersen Nybegynder
18. august 2004 - 11:05 #11
blackadder> din metode checker kun om en aftale oprettet fra Excel arket er oprettet i Outlook - hvad nu hvis der ligger en anden aftale oprettet på anden vis?
cwc> prøv at tage et kig på http://www.eksperten.dk/spm/522837 der ligger funktionerne til det. Jeg vil tro at de kan flyttes til Access sådan bare lige med et par små ændringer.
Avatar billede Slettet bruger
18. august 2004 - 19:11 #12
GetOutlookTasks() henter de tasks der er oprettet i Outlook på det øjeblik du kører den, uanset hvordan de tasks er oprettet. Du kan herefter tilføje tasks ved at skrive i kolonnerne under de allerede oprettet tasks og så køre CreateOutlookTasks()
.

Hvordan man gører det fra Access, ved jeg ikke.
Avatar billede cwc Nybegynder
08. oktober 2004 - 13:20 #13
Hvad gør jeg forkert... Kode er copieret ind i et Excel kodemodul, men i linien :
OlApp As Outlook.Application
kommer der en fejl : Can't find project or library.
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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

IT-JOB