Op donderdag 24 september 2015 17:13:11 UTC+2 schreef
margret...@gmail.com:
maak een excel file met de volgende kolommen:
Onderwerp Begindatum Begintijd einddatum Eindtijd Omschrijving Locatie
voeg daaraan de volgende macro code toe:
als de macro uitgevoerd wordt zal er een ics file gegenereerd worden. deze mailen naar de gewenste personen. De ics file kan geimporteerd worden in outlook of in google agenda.
Let er op dat het onderwerp ingevuld is anders zal er geen agenda item aangemaakt worden.
Sub Generate_ICS()
ActiveSheet.Select
Dim rng1 As Range, X, i As Long, v As Long
Dim objFSO, objFile
Dim FilePath As String
FilePath = ThisWorkbook.Path & "\" & ActiveSheet.Name & "-agenda" & ".ics" 'evt naam aanpassen
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile(FilePath)
Set rng1 = Range("A2", Cells(Rows.Count, 8).End(xlUp))
X = rng1
objFile.Write "BEGIN:VCALENDAR" & vbCrLf & "VERSION:2.0" & vbCrLf
For i = 1 To UBound(X, 1)
If Not rng1(i, 1).Value = "" Then 'lege agenda regels overslaan
If (X(i, 3) = "") Then 'geen begintijd ingevuld dan agenda gebeurtenis voor de hele dag
objFile.Write "BEGIN:VEVENT" & vbCrLf & "DTSTART;VALUE=DATE:" & Format(X(i, 2), "yyyymmdd") & vbCrLf & "DTEND;VALUE=DATE:" & Format(X(i, 4), "yyyymmdd") & vbCrLf & "DESCRIPTION:" & X(i, 6) & _
vbCrLf & "SUMMARY:" & X(i, 1) & vbCrLf & "LOCATION:" & X(i, 7) & vbCrLf & "END:VEVENT" & vbCrLf
Else
objFile.Write "BEGIN:VEVENT" & vbCrLf & "DTSTART:" & Format(X(i, 2), "yyyymmdd") & "T" & Format(X(i, 3), "HHMMSS") & vbCrLf & "DTEND:" & Format(X(i, 4), "yyyymmdd") & "T" & Format(X(i, 5), "HHMMSS") & vbCrLf & "DESCRIPTION:" & X(i, 6) & _
vbCrLf & "SUMMARY:" & X(i, 1) & vbCrLf & "LOCATION:" & X(i, 7) & vbCrLf & "END:VEVENT" & vbCrLf
End If
End If
Next i
objFile.Write "END:VCALENDAR"
MsgBox "opgeslagen in: " & ThisWorkbook.Path & "\" & ActiveSheet.Name & "-agenda" & ".ics" 'evt naam aanpassen
End Sub