• 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.

ALS functie in VBA

Status
Niet open voor verdere reacties.

Jeof1980

Gebruiker
Lid geworden
10 aug 2010
Berichten
30
Ik zit met het volgende probleem:

Ik heb in cel "O14" een datum staan en in cel "Q14". Nu wil ik graag dat deze cellen een actie aansturen indien een datum verstrijkt.

b.v. als "O14" = 19/8 en cel "Q14"=17/8 hoeft geen actie echter als de datum in cel "O14" gelijk is met de datum van vandaag() en er geen waarde is ingevuld in cel "Q14" dan dient er een actie plaats te vinden. Deze formule dient dan ingevuld te worden in de VBA:eek:
 
Zoiets?

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [o14].Value = Date And [q14].Value = "" Then MsgBox "actie!" 'na Then komt jouw actie in codetaal
End Sub

PS: Deze code zet je niet in een Module maar in de code van het betreffende werkblad zelf.

Mvg
 
Laatst bewerkt:
Hmm, ongeveer maar niet helemaal de bedoeling:

Wellicht dat dit een beter uitleg van mijn probleem is.

Navolgende cellen wil ik in één formule gebruiken in de VBA om zo een e-mail te generen;

als O14 = vandaag en geen waarde is ingevuld in Q14 genereer email
maar als O14 < Q14 geen actie

m.a.w. als ik al een datum heb ingevuld in Q14 hoeft geen email aangemaakt te worden.

Verder wil ik hier aan nog het volgende koppelen maar volgend mij moet dit kunnen middels een OR functie;

als U14 = vandaag en geen waarde is ingevuld in Y14 genereer email
maar als U14 <Y14 geen actie

en

als V14 = vandaag en geen waarde is ingevuld in Y14 genereer email
als V14 -7dg = vandaag en geen waarde is ingevuld in Y14 genereer email
maar als V14 < Y14 geen actie

het verzenden van de standaard e-mail heb ik al rest echter nog bovenstaande aansturing.
 
Doet deze code wat je wilt (ik heb hem nog een beetje ingekort :p)?

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [o14] = Date And [o14] > [q14] Then MsgBox "actie!"
End Sub

Met betrekking tot de andere voorwaarden, zou ik een volgende opzet gebruiken (hoewel ik sterk betwijfel of het de mooiste oplossing is...)

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [o14] = Date And [o14] > [q14] Then goto sendmail
If [u14] = Date And [u14] > [y14] Then goto sendmail
If [v14] = Date And [v14] > [y14] Then goto sendmail
If [v14]-7 = Date And [v14] > [y14] Then goto sendmail
Exit Sub
sendmail:
msgbox "actie" 'je eigen code
End Sub

Bedenk trouwens wel dat met selectionchange bij iedere verandering van de selectie op het werkblad de macro wordt uitgevoerd (logisch, maar misschien wel een belangrijk puntje).

Succes :thumb:
 
hoi

klopt het dat als O14 groter is dan vandaag() dat er dan geen mail moet worden aan gemaakt?
(dus alleen als O14 gelijk is aan vandaag() dus als je een dag later bent moet je niet een mail sturen.????

groet sylvester
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan