Thema Datum  Von Nutzer Rating
Antwort
05.10.2016 11:08:52 Officer_Bierschnitt
NotSolved
Blau ics Kalenderdatei erstellen
05.10.2016 14:27:37 Officer_Bierschnitt
NotSolved
05.10.2016 15:22:33 Officer_Bierschnitt
NotSolved
05.10.2016 15:57:25 Officer_Bierschnitt
NotSolved
06.10.2016 09:38:56 Officer_Bierschnitt
NotSolved
06.10.2016 10:32:08 Officer_Bierschnitt
NotSolved

Ansicht des Beitrags:
Von:
Officer_Bierschnitt
Datum:
05.10.2016 14:27:37
Views:
892
Rating: Antwort:
  Ja
Thema:
ics Kalenderdatei erstellen
Hallo, ich poste hier mal den Code hin. Einiges hab ich schon auskommentiert, weil es eben für diesen Anwendungszweck - Schulaufgabenkalender - nicht relevant ist. Bisher geht es noch nicht so richtig - im Prinzip schon, in meinem Outlook wird ein neuer unbenannter Kalender angelegt, aber die Termine tauchen da noch nicht auf. Blöderweise kann ich ja hier auch nix anhängen, daher kann ich die Excel-Datei auch nicht anhängen - aber vieleicht kann ich später, sobald es funktioniert, einen Screenshot anhängen. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Sub ics_erstellen() Range("A2").Select 'Erstellt den Zeitstempel 'wird benötigt für die UID des Kalendereintrages und für die Felder '"erstellt am" --> "DTSTAMP" und "zuletzt geändert am" --> "LAST-MODIFIED" Dim jahr_jetzt As String jahr_jetzt = Year(Now) Dim monat_jetzt As String * 2 monat_jetzt = Month(Now) If monat_jetzt < 10 Then monat_jetzt = "0" + monat_jetzt Dim tag_jetzt As String * 2 tag_jetzt = Day(Now) If tag_jetzt < 10 Then tag_jetzt = "0" + tag_jetzt Dim stunde_jetzt As String * 2 stunde_jetzt = Hour(Now) 'Diese Zeile muss im Wechsel von Sommer- und Winterzeit angepasst werden. If stunde_jetzt < 10 Then stunde_jetzt = "0" + stunde_jetzt Dim minute_jetzt As String * 2 minute_jetzt = Minute(Now) If minute_jetzt < 10 Then minute_jetzt = "0" + minute_jetzt Dim sekunde_jetzt As String * 2 sekunde_jetzt = Second(Now) If sekunde_jetzt < 10 Then sekunde_jetzt = "0" + sekunde_jetzt Zeitstempel = jahr_jetzt + monat_jetzt + tag_jetzt + "T" + stunde_jetzt + minute_jetzt + _ sekunde_jetzt + "Z" ' Der Zeitstempel umfasst halt alles zusammen, aber durch die Buchstaben ist das etwas strukturiert. 'Erstellt die Kalenderdatei (hier: Dpl.ics) ' Der Ordner muss vorab vorhanden sein, das Makro legt nur die txt-Datei an, wenn alle Ordnerebenen vorhanden sind. ' Durch diese beiden Verschachtelungen können die nachfolgenden >>writeline<<-Befehle wesentlich kürzer gehalten werden. Set fs = CreateObject("scripting.filesystemobject") Set a = fs.createtextfile("C:\Users\friedrich.hofmann.SYNCREON\Desktop\Tests_ics\Dpl.ics", _ True) 'Schreibt den allgemeinen Teils der Kalenderdatei a.writeline ("BEGIN:VCALENDAR") a.writeline ("VERSION:2.0") a.writeline ("PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN") a.writeline ("METHOD:PUBLISH") a.writeline ("BEGIN:VTIMEZONE") a.writeline ("TZID:Europe/Berlin") a.writeline ("X-LIC-LOCATION:Europe/Berlin") a.writeline ("BEGIN:DAYLIGHT") a.writeline ("TZOFFSETFROM:+0100") a.writeline ("TZOFFSETTO:+0200") a.writeline ("TZNAME:CEST") a.writeline ("DTSTART:19700329T020000") a.writeline ("RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3") a.writeline ("END:DAYLIGHT") a.writeline ("BEGIN:STANDARD") a.writeline ("TZOFFSETFROM:+0200") a.writeline ("TZOFFSETTO:+0100") a.writeline ("TZNAME:CET") a.writeline ("DTSTART:19701025T030000") a.writeline ("RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10") a.writeline ("END:STANDARD") a.writeline ("END:VTIMEZONE") 'Schleife zur Ermittlung aller Einträge 'Benutzt alle Datensätze, die ein Datum enthalten 'Damit hier die Liste wirklich von ganz oben durchgegangen wird, springen wir mal auf A1 Range("A1").Select i = 1 While ActiveCell.Offset(i, 0) <> "" 'Hier wird also eine Excel-Liste zeilenweise durchlaufen. Dim datstart As Date datstart = ActiveCell.Offset(i, 0) ' Sämtliche Zusatzinformationen, die im Normalfall bei einem Termin dabei sind, sind hier nicht relevant, Datum und Thema reichen für den geplanten Schulaufgaben-kalender. ' Dim timestart As Date ' timestart = ActiveCell.Offset(i, 1) ' Dim datend As Date ' datend = ActiveCell.Offset(i, 2) ' Dim timeend As Date ' timeend = ActiveCell.Offset(i, 3) Dim thema As String thema = ActiveCell.Offset(i, 1) ' Dim ort As String ' ort = ActiveCell.Offset(i, 5) ' Dim diensthabender As String ' diensthabender = ActiveCell.Offset(i, 6) 'Aufbereitung Datum und Zeit für Beginn Dim jdatstart As String jdatstart = Year(datstart) Dim mdatstart As String mdatstart = Month(datstart) If mdatstart < 10 Then mdatstart = "0" + mdatstart Dim tdatstart As String tdatstart = Day(datstart) If tdatstart < 10 Then tdatstart = "0" + tdatstart ' Dim hhtimestart As String ' Stunde, Minute und Sekunde sind für den Anwendungszweck eines Schulaufgaben-Kalenders nicht relevant. ' hhtimestart = Hour(timestart) ' If hhtimestart < 10 Then hhtimestart = "0" + hhtimestart ' Dim mmtimestart As String ' mmtimestart = Minute(timestart) ' If mmtimestart < 10 Then mmtimestart = "0" + mmtimestart ' Dim sstimestart As String ' sstimestart = "00" ' >>>>>>>>>>>>>>>>>> Ein Ende brauchen wir ja nicht <<<<<<<<<<<<<<<<<<<<<<<< ''Aufbereitung Datum und Zeit für Ende ' Dim jdatend As String ' jdatend = Year(datend) ' Dim mdatend As String ' mdatend = Month(datend) ' If mdatend < 10 Then mdatend = "0" + mdatend ' Dim tdatend As String ' tdatend = Day(datend) ' If tdatend < 10 Then tdatend = "0" + tdatend ' Dim hhtimeend As String ' hhtimeend = Hour(timeend) ' If hhtimeend < 10 Then hhtimeend = "0" + hhtimeend ' Dim mmtimeend As String ' mmtimeend = Minute(timeend) ' If mmtimeend < 10 Then mmtimeend = "0" + mmtimeend ' Dim sstimeend As String ' sstimeend = "00" Dim k As String k = i 'Schreibt den Kalendereintrag 'k ist ein durchlaufender Zähler a.writeline ("BEGIN:VEVENT") a.writeline ("UID:" + Zeitstempel + "-@Verein-" + k) a.writeline ("CLASS:PUBLIC") a.writeline ("SUMMARY:" + thema) a.writeline ("DESCRIPTION:" + "Diensthabender: " + diensthabender) a.writeline ("LOCATION:" + ort) a.writeline ("DTSTART;TZID=Europe/Berlin:" + jdatstart + mdatstart + tdatstart + "T" + _ hhtimestart + mmtimestart + sstimestart + "Z") a.writeline ("DTEND;TZID=Europe/Berlin:" + jdatend + mdatend + tdatend + "T" + hhtimeend + _ mmtimeend + sstimeend + "Z") a.writeline ("DTSTAMP:" + Zeitstempel) a.writeline ("LAST-MODIFIED:" + Zeitstempel) a.writeline ("BEGIN:VALARM") a.writeline ("ACTION:DISPLAY") a.writeline ("TRIGGER;VALUE=DURATION:-P1D") a.writeline ("DESCRIPTION:Mozilla Alarm: " + thema) a.writeline ("END:VALARM") a.writeline ("END:VEVENT") i = i + 1 Wend 'Ende der Schleife 'Ende der Kalenderdatei a.writeline ("END:VCALENDAR") End Sub >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
05.10.2016 11:08:52 Officer_Bierschnitt
NotSolved
Blau ics Kalenderdatei erstellen
05.10.2016 14:27:37 Officer_Bierschnitt
NotSolved
05.10.2016 15:22:33 Officer_Bierschnitt
NotSolved
05.10.2016 15:57:25 Officer_Bierschnitt
NotSolved
06.10.2016 09:38:56 Officer_Bierschnitt
NotSolved
06.10.2016 10:32:08 Officer_Bierschnitt
NotSolved