Kalenderaftaler i Excel -> Outlook Calendar via macro (VBA)
Hej!Jeg har et Excel-dokument hvori jeg har en række aftaler om arbejde der skal udføres i firmaet. Disse aftaler er årlige service-aftaler. Jeg vil derfor gerne have dem ind i Outlook kalender ved et klik på en macro.
Jeg har søgt på nettet efter lidt kode, og jeg har da også fundet noget der virker perfekt, men jeg har lidt flere krav, så det er tilpasset min situation bedre. Problemet er bare, at jeg intet ved om VBA, og selvom de små ændringer sikkert er simple, så kan jeg derfor ikke gennemskue det.
Her er koden jeg fandt på dette link: http://www.google.com/support/forum/p/Calendar/thread?tid=5e4909ca64cffe90&hl=en - Credit går til brugeren "tpuiatti".
Sub Generate_ICS()
Dim rng1 As Range, X, i As Long, v As Long
Dim objFSO, objFile
Dim FilePath As String
FilePath = "G:\Service.ics"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile(FilePath)
Set rng1 = Range([a5], Cells(Rows.Count, "B").End(xlUp))
X = rng1
objFile.write "BEGIN:VCALENDAR" & vbCrLf
For i = 1 To UBound(X, 1)
objFile.write "BEGIN:VEVENT" & vbCrLf & "DTSTART:" & Format(X(i, 2), "yyyymmdd") & vbCrLf & "DTEND:" & Format(X(i, 2), "yyyymmdd") & vbCrLf & "RRULE:FREQ=YEARLY" & _
vbCrLf & "SUMMARY:" & X(i, 1) & vbCrLf & "END:VEVENT" & vbCrLf
Next i
objFile.write "END:VCALENDAR"
End Sub
Grunden til at der eksporteres til .ics er, at det understøtter gentagne aftaler i Outlook Calendar, og mine aftaler gentages netop årligt. Men ovenstående virker perfekt. Jeg har bare lidt tilføjelser, som jeg håber i kender koden til:
1. - Ovenstående tager datoinformation fra kolonne B. Jeg vil have det til at tage data fra kolonne H i stedet.
2. - Aftalerne skal være "heldagsaftaler". Dvs. ikke noget start og slut tidspunkt.
3. - Jeg ønsker at have en reminder på 1 uge før til hver aftale
4. - Jeg ønsker at placere alle aftaler i en kategori (dette er dog ikke så vigtigt)
5. - Jeg har brug for at macroen også tager "location information" fra kolonne B samt beskrivelse (normal body tekst) fra kolonne D og E.
Jeg nævner kolonner og ikke celler, da macroen automatisk skal tage alt fremtidig data. Der kommer nemlig løbende nye aftaler.
Jeg benytter Excel/Oulook 2007.
Jeg håber jeg fik det forklaret på en let forståelig måde, ellers er i velkomne til at spørge løs!
På forhånd tak!
Mvh
Jeppe C.