Beste forumleden,
Naar aanleiding van onderstaand forum aan het puzzelen gegaan:
https://www.helpmij.nl/forum/showthread.php/964221-vanuit-excel-een-afspraak-in-outlook-agenda-toevoegen
Ik heb namelijk het excel virus weer te pakken (grote beginneling) en wil graag wat zaken vergemakkelen. Korte situatie schets: Op het werk voeren wij updates uit, dit zijn meerdere op een avond/week en in een maand, deze worden gepland in één systeem waarbij de volgende gegevens ontstaan; datum, tijd, klant, duur van afspraak. Zo'n update wordt uitgevoerd door verschillende collega's waarbij ik bij alle agenda's volledige bewerkrechten heb.
Wat zou ik graag willen kunnen:
- Afspraken plaatsen in een specifieke agenda (op basis van mail adres die ik dan zal vullen in een veld in excel, kolom M)
- Van dezelfde aangemaakte lijst alle afspraken verwijderen zodat bij wijzigingen ze opnieuw met de macro in de agenda kan worden gezet
- Of natuurlijk macro checkt gewijzigde afspraken -> verwijdert huidige -> voegt nieuwe toe echter dit lijkt me te lastig (want wat was de oude dan).
Ik verwacht niet dat het even wordt gemaakt en dan werkt het, wil het ook gaan begrijpen.
Wat heb ik al gedaan:
Ik wil absoluut niet met de credits ervandoor gaan, dus mede door input snb/friend/jec/hsv zaken aangepast.
Met name de volgorgde van velden en zodat ik naar meerdere personen iets kon sturen, was:
Alleen na wat extra feedback is onderstaand eruit komen rollen.
Het stuk om afspraken te kunnen verwijderen en agenda afspraken toe te voegen, dit forum van snb is vrij duidelijk maar kom er niet helemaal uit:
https://www.snb-vba.eu/VBA_Outlook_external.html#L_10.1
Verwijderen van agenda afspraken - EDIT; Opgelost door HSV, dankje
Vanuit het voorbeeld op de website, heb ik het volgende van gemaakt:
Bovenstaand werkt niet, maar als ik het goed intrepeteer:
Regel 1 definieert het bereik
Regel 2 Definieert wat de waarde C00 is, in dit geval hetgeen wat in cel 7 staat (Maar waarom verwijderen op basis van onderwerp?, althans dat is mijn intrepreatie op snb website).
Regel 3 Zodat het blijft doorgaan tot alle regels zijn afgehandeld
Regel 4 het daadwerkelijk verwijderd op basis van de waarde C00, echter als ik de basale formule gebruik op mijn afspraak dan vindt het systeem ook niks (ik gebruik office 365).
Wat begrijp ik bij bovenstaand niet goed?
Het schrijven in een gedeelde agenda in outlook
Punt 2 is het maken van de afspraak in een andere agenda, informatie die te vinden is, is bijvoorbeeld https://stackoverflow.com/questions/37353404/how-to-add-an-appointment-to-a-shared-calendar-in-outlook
Ook hier staat in het Engels een uitleg maar dat gaat verder dan wat ik nodig heb.
Zoals; Create reference/select file path/select workbook is volgensmij overbodig.
Volgensmij geeft Walkdog onderaan het forum het antwoord maar dan moet create email eruit, maar vraag me af waar olApp en olNS vandaan komt.
Het stukje initialize variables begrijp ik niet, wat ga je initialiseren?
al met al, bovenstaand vind ik voor nu nog erg latig en kan iemand mij op weg helpen?
.snb-vba.eu bevat veel info maar volgensmij deze informatie (nog) niet.
Voorbeelddocument:
Bekijk bijlage Afspraken importeren in outlook agenda.xlsm
Graag wil ik benadrukken, ik snap echt heel goed dat alle antwoorden niet meteen worden gegeven omdat zelfonderzoek belangrijk is. Dus wat sturing is ook welkom.
mvg,
Teun
Naar aanleiding van onderstaand forum aan het puzzelen gegaan:
https://www.helpmij.nl/forum/showthread.php/964221-vanuit-excel-een-afspraak-in-outlook-agenda-toevoegen
Ik heb namelijk het excel virus weer te pakken (grote beginneling) en wil graag wat zaken vergemakkelen. Korte situatie schets: Op het werk voeren wij updates uit, dit zijn meerdere op een avond/week en in een maand, deze worden gepland in één systeem waarbij de volgende gegevens ontstaan; datum, tijd, klant, duur van afspraak. Zo'n update wordt uitgevoerd door verschillende collega's waarbij ik bij alle agenda's volledige bewerkrechten heb.
Wat zou ik graag willen kunnen:
- Afspraken plaatsen in een specifieke agenda (op basis van mail adres die ik dan zal vullen in een veld in excel, kolom M)
- Van dezelfde aangemaakte lijst alle afspraken verwijderen zodat bij wijzigingen ze opnieuw met de macro in de agenda kan worden gezet
- Of natuurlijk macro checkt gewijzigde afspraken -> verwijdert huidige -> voegt nieuwe toe echter dit lijkt me te lastig (want wat was de oude dan).
Ik verwacht niet dat het even wordt gemaakt en dan werkt het, wil het ook gaan begrijpen.
Wat heb ik al gedaan:
Ik wil absoluut niet met de credits ervandoor gaan, dus mede door input snb/friend/jec/hsv zaken aangepast.
Met name de volgorgde van velden en zodat ik naar meerdere personen iets kon sturen, was:
Code:
Sub Teun()
sn = Blad1.Cells(1).CurrentRegion
For j = 2 To UBound(sn)
With CreateObject("Outlook.Application").CreateItem(1)
.Start = sn(j, 4) + sn(j, 5)
.Duration = sn(j, 6) - sn(j, 5)
.Subject = sn(j, 1) & " " & sn(j, 2) & " " & sn(j, 3)
.Location = sn(j, 9)
.Body = sn(j, 8)
.AllDayEvent = sn(j, 10) = "j"
.ReminderSet = sn(j, 11) = "j"
.ReminderMinutesBeforeStart = sn(j, 12)
.Save
End With
Next
MsgBox "Afsraken zijn toegevoegd aan de kalender :-)"
End Sub
Alleen na wat extra feedback is onderstaand eruit komen rollen.
Code:
Sub Teun()
sn = Blad1.Cells(1).CurrentRegion
With CreateObject("Outlook.Application")
For j = 2 To UBound(sn)
With .createitem(1)
.Start = sn(j, 4) + sn(j, 5)
.Duration = sn(j, 6) - sn(j, 5)
.Subject = sn(j, 1) & " " & sn(j, 2) & " " & sn(j, 3)
.Location = sn(j, 9)
.Body = sn(j, 8)
.AllDayEvent = sn(j, 10) = "j"
.ReminderSet = sn(j, 11) = "j"
.ReminderMinutesBeforeStart = sn(j, 12)
.Save
End With
Next
MsgBox "Afsraken zijn toegevoegd aan de kalender :-)"
End With
End Sub
Het stuk om afspraken te kunnen verwijderen en agenda afspraken toe te voegen, dit forum van snb is vrij duidelijk maar kom er niet helemaal uit:
https://www.snb-vba.eu/VBA_Outlook_external.html#L_10.1
Verwijderen van agenda afspraken - EDIT; Opgelost door HSV, dankje
Vanuit het voorbeeld op de website, heb ik het volgende van gemaakt:
Code:
Sub Afspraak_Verwijderen()
sn = Blad1.Cells(1).CurrentRegion
c00 = sn(j, 7)
For j = 2 To UBound(sn)
.GetNamespace("MAPI").GetDefaultFolder(9).Items(c00).Delete
Next
End With
End Sub
Bovenstaand werkt niet, maar als ik het goed intrepeteer:
Regel 1 definieert het bereik
Regel 2 Definieert wat de waarde C00 is, in dit geval hetgeen wat in cel 7 staat (Maar waarom verwijderen op basis van onderwerp?, althans dat is mijn intrepreatie op snb website).
Regel 3 Zodat het blijft doorgaan tot alle regels zijn afgehandeld
Regel 4 het daadwerkelijk verwijderd op basis van de waarde C00, echter als ik de basale formule gebruik op mijn afspraak dan vindt het systeem ook niks (ik gebruik office 365).
Wat begrijp ik bij bovenstaand niet goed?
Het schrijven in een gedeelde agenda in outlook
Punt 2 is het maken van de afspraak in een andere agenda, informatie die te vinden is, is bijvoorbeeld https://stackoverflow.com/questions/37353404/how-to-add-an-appointment-to-a-shared-calendar-in-outlook
Ook hier staat in het Engels een uitleg maar dat gaat verder dan wat ik nodig heb.
Zoals; Create reference/select file path/select workbook is volgensmij overbodig.
Volgensmij geeft Walkdog onderaan het forum het antwoord maar dan moet create email eruit, maar vraag me af waar olApp en olNS vandaan komt.
Het stukje initialize variables begrijp ik niet, wat ga je initialiseren?
Code:
Dim iRow As Integer
Dim iCol As Integer
Dim oNs As Namespace
Dim olFldr As Outlook.MAPIFolder
Dim objOwner As Outlook.Recipient
al met al, bovenstaand vind ik voor nu nog erg latig en kan iemand mij op weg helpen?
.snb-vba.eu bevat veel info maar volgensmij deze informatie (nog) niet.
Voorbeelddocument:
Bekijk bijlage Afspraken importeren in outlook agenda.xlsm
Graag wil ik benadrukken, ik snap echt heel goed dat alle antwoorden niet meteen worden gegeven omdat zelfonderzoek belangrijk is. Dus wat sturing is ook welkom.
mvg,
Teun
Laatst bewerkt: