Okay, ik ben alweer wat verder
Ik heb op basis van het voorbeeld van Pink Panther en het voorbeeld van die site die ik hiervoor noemde het volgende gemaakt:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| Sub Factuur_reminder()
' Start Outlook.
' If it is already running, you'll use the same instance...
Dim olApp As Outlook.Application
Set olApp = CreateObject("Outlook.Application")
' Logon. Doesn't hurt if you are already running and logged on...
Dim olNs As Outlook.NameSpace
Set olNs = olApp.GetNamespace("MAPI")
olNs.Logon
' Create a new appointment.
Dim olAppt As Outlook.AppointmentItem
Set olAppt = olApp.CreateItem(olAppointmentItem)
' Setup appointment ...
With olAppt
.Start = Date + 1 + TimeValue("19:00:00")
.Duration = 30
.Subject = "Nieuwe factuur sturen naar..."
.Body = "Nieuwe factuur sturen naar KLANT XYZ."
.ReminderMinutesBeforeStart = 30
.ReminderSet = True
End With
' Save Appointment...
olAppt.Save
' Clean up...
MsgBox "Reminder aangemaakt in Outlook agenda...", vbMsgBoxSetForeground
olNs.Logoff
Set olNs = Nothing
Set olAppt = Nothing
Set olItem = Nothing
Set olApp = Nothing
End Sub |
Als ik nu vanuit Excel naar menuoptie Extra ga en vervolgens zeg dat ie de macro Factuur_reminder moet uitvoeren, dan plaatst ie netjes een afspraak in mijn Outlook agenda en geeft ie me een melding "Reminder aangemaakt in Outlook agenda...". Werkt fantastisch zo!
Echter...hij plaatst de afspraak nu volgens code altijd 1 dag nadat de macro is uitgevoerd (dus ik test vandaag en de afspraak wordt voor morgen in de agenda gezet) om 19:00 uur en de afspraak duurt altijd 30 minuten. Ook het onderwerp en de body tekst zijn altijd hetzelfde.
Ik wil echter een aantal dingen variabel hebben. De tijd, de duur en het onderwerp vind ik prima zo, die mogen altijd hetzelfde zijn. De datum waarop de afspraak in de agenda gezet wordt en de body tekst moeten echter variabel zijn.
Ik wil het volgende:
Op basis van een aantal variabelen in diverse cellen op het Excel werkblad, rekent excel automatisch de vervaldatum voor de betreffende factuur uit en zet die datum in een bepaalde cel neer. Vervolgens wil ik dus dat die macro automatisch uitgevoerd wordt zodra in die betreffende cel een vervaldatum komt te staan en de macro moet die datum meenemen in de berekening voor het plaatsen van de afspraak. Dus als ik vandaag een rekening aanmaak die voor een half jaar geldig is, dan rekent Excel automatisch uit dat er op 12-06-2005 een nieuwe factuur gestuurd moet worden...dat is dan dus de vervaldatum. Ik wil dat de macro deze datum dan neemt en op die dag een afspraak in Outlook zet.
Vervolgens wil ik ook dat de tekst "Klant XYZ" uit de body variabel is. In de factuur staat in een cel de naam van de klant. Die naam wil ik dat opgenomen wordt in de macro als klantnaam.
Kan iemand mij uitleggen hoe ik die macro aan een vaste cel gekoppeld krijg, zodanig dat ie automatisch uitgevoerd wordt zodra die cel gevuld is? En kan iemand me tevens vertellen hoe ik de vervaldatum en de klantnaam als variabelen in de macro code krijg?