• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Wijzig Outlook afspraak

Status
Niet open voor verdere reacties.

mulderwme

Gebruiker
Lid geworden
12 dec 2014
Berichten
232
Hallo allemaal,

Via Excel laat ik mijn agenda vullen.
Verwijderen van een item doe ik ook op die manier.
Maar het wijzigen van een item lukt me niet.

In cel C3 Excel stond: 17001 Opening schooljaar 2016 (OudItem)
Dat item staat nu in mijn Outlook agenda.

Ik wil dit nu laten wijzigen in: 17001 Opening schooljaar 2016-2017 (NieuwItem)

Het nummer 17001 is uniek. Als het nummer van OudItem = NieuwItem, dan moet de oude worden verwijderd en de nieuwe ervoor in de plaats gezet.

Bij de status "nieuw" wordt het item toegevoegd.
Bij status "update" zou deze moeten worden aangepast.

Als wijzigen niet kan, mag de oude ook worden verwijderd en de nieuwe ervoor in de plaats worden gezet. (Dat is zoals ik het nu probeer te maken.)

Ik heb een voorbeeld bestandje bijgevoegd.

Alvast bedankt voor het meedenken.

Willem
 

Bijlagen

Bedankt Harry,

Het lukt me wanneer ik precies het subject opgeef.
Maar ik wil het subject wijzigen als de 1e 16 posities gelijk zijn. Ik probeer dan "*deel onderwerp*", maar dat werkt niet.

Ik heb het bestand weer bijgevoegd. het wijzigen zit in een nieuwe module.

groet
Willem
 

Bijlagen

Hallo Willem,

Ik gebruik dit soort dingen ook nooit dus voor mij allemaal nieuw.
Ik laat het nu zoeken op datum + tijd en op subject.

Test het maar eens.
Code:
Sub afspraak_wijzigen()
Dim c00 As String, it As Object
c00 = "Afspraak A-170001 2016-2017"


For Each it In CreateObject("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(9).Items
  If CDate(it.Start) = Cells(ActiveCell.Row, 4) & " " & CDate(Cells(ActiveCell.Row, 5)) And _
  it.Subject Like "*" & Cells(ActiveCell.Row, 3).Value & "*" Then
    it.Subject = c00
    it.Save
   End If
 Next it
End Sub
 
Hallo Harry,

Na onderstaande aanpassing werkt het.
Hij hoeft alleen maar de zoeken naar afspraken die overeen komen met c00. Die code is uniek, dan is het goed.

Het proces duurt nu wel lang, omdat de code Each item langsloopt (als ik het goed begrijp).

Code:
Sub afspraak_wijzigen2()

Dim c00 As String, it As Object

c00 = "Afspraak A-170001"
NwOnderwerp = "Afspraak A-170001 Opening schooljaar 2016-2017"

For Each it In CreateObject("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(9).Items
  
   If it.Subject Like "*" Then
       it.Subject = NwOnderwerp 'c00
       it.Save
   End If
   
Next it

End Sub

groet
Willem
 
Je kunt ook de filter of find methode gebruiken; die staan in de website ook beschreven.
 
Ik had de find methode (10.4.4 op jouw site) in eerste instantie geprobeerd, maar ik verkreeg geen resultaat.

De methodes met zijn argumenten zijn ook niet gemakkelijk te doorgronden.
 
Ik zie nu dat alle onderwerpen van alle afspraken zijn gewijzigd in "Afspraak A-170001 Opening schooljaar 2016-2017" :confused:
 
Daarom controleerde ik in de code ook naar de startdatum en subject, en niet alleen op subject.
 
Dit zal vast sneller gaan Willem.

Direct zoeken in de datum (op de bewuste starttijd) naar een bepaalde subject.

Code:
Sub afspraak_wijzigen()
Dim c00 As String, c01 As String, it As Object
c00 = "Afspraak A-170001"
c01 = Format(DateValue("1-3-2017") + TimeValue("15:30"), "dd-mm-yyyy h:mm")
c01 = "[Start]='" & c01 & "'"
For Each it In CreateObject("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(9).Items.restrict(c01)
 If it.Subject Like "*" & c00 & "*" Then
   it.Subject = "Afspraak A-170001 Opening schooljaar 2016-2017"
   it.Save
   End If
 Next
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan