Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
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.
Dat kan ik me voorstellen, in jouw voorbeeld zit maar één persoon. Ik weet niet of je veel hebt aan de verjaardaggegevens van het bedrijf waar ik werk, maar als ik je daar een plezier mee doe?Ik ben op zoek naar een Excel sheet waar mederkers met verjaardagen in staan.
Sub StuurVerjaardagsEmail()
Dim Rng As Range
Dim Cel As Range
Dim VerjaardagsDatum As Date
Dim Vandaag As Date
Dim EmailBody As String
Dim OutlookApp As Object
Dim EmailItem As Object
Dim EmailAdres As String
' De datum van vandaag
Vandaag = Date
' Bereik van verjaardagen in kolom M2:M100 op het blad "Test"
Set Rng = ThisWorkbook.Sheets("Test").Range("M2:M100")
' Outlook applicatie starten
On Error Resume Next
Set OutlookApp = GetObject(class:="Outlook.Application")
If OutlookApp Is Nothing Then
Set OutlookApp = CreateObject(class:="Outlook.Application")
End If
On Error GoTo 0
' Loop door elke cel in het bereik
For Each Cel In Rng
' Controleren of de cel een datum bevat en niet leeg is
If Not IsEmpty(Cel.Value) And IsDate(Cel.Value) Then
VerjaardagsDatum = Cel.Value
' Vergelijken van maand en dag van de verjaardag met de huidige datum
If Month(VerjaardagsDatum) = Month(Vandaag) And Day(VerjaardagsDatum) = Day(Vandaag) Then
' Haal het e-mailadres op uit kolom J van dezelfde rij
EmailAdres = Cel.Offset(0, -3).Value ' Offset(0, -3) verwijst naar kolom J
' Controleren of het e-mailadres niet leeg is
If Not IsEmpty(EmailAdres) Then
' E-mail opstellen
Set EmailItem = OutlookApp.CreateItem(0) ' 0 is olMailItem
With EmailItem
.To = EmailAdres
.Subject = "Verjaardagswensen!"
EmailBody = "Gefeliciteerd met je verjaardag!" & vbCrLf & "We wensen je een fantastische dag!"
.Body = EmailBody
.Send ' Verzend de e-mail
End With
End If
End If
End If
Next Cel
' Outlook objecten opruimen
Set EmailItem = Nothing
Set OutlookApp = Nothing
End Sub
Sub StuurVerjaardagsEmail()
Dim Verjaardagen As Variant, EmailAdressen As Variant
Dim i As Long
Dim OutlookApp As Object, EmailItem As Object
' Laad verjaardagen en e-mailadressen in arrays
With ThisWorkbook.Sheets("Test")
Verjaardagen = .Range("M2:M100").Value
EmailAdressen = .Range("J2:J100").Value
End With
' Start Outlook-applicatie
On Error Resume Next
Set OutlookApp = GetObject(class:="Outlook.Application")
If OutlookApp Is Nothing Then Set OutlookApp = CreateObject(class:="Outlook.Application")
On Error GoTo 0
' Loop door array voor verjaardagen en controleer
For i = 1 To UBound(Verjaardagen)
If IsDate(Verjaardagen(i, 1)) And Month(Verjaardagen(i, 1)) = Month(Date) And Day(Verjaardagen(i, 1)) = Day(Date) Then
If Not IsEmpty(EmailAdressen(i, 1)) Then
' E-mail aanmaken en verzenden
Set EmailItem = OutlookApp.CreateItem(0)
With EmailItem
.To = EmailAdressen(i, 1)
.Subject = "Verjaardagswensen!"
.Body = "Gefeliciteerd met je verjaardag!" & vbCrLf & "We wensen je een fantastische dag!"
.Send
End With
End If
End If
Next i
' Opruimen Outlook objecten
Set OutlookApp = Nothing
End Sub
Sub M_snb()
With Sheet1.Cells(1).CurrentRegion
.Sort Cells(1, 13), , , , , , , 1
.AutoFilter 13, Format(Date, "dd-mm-yyyy")
sn = .Offset(1).SpecialCells(12)
End With
With CreateObject("outlook.application")
For j = 1 To UBound(sn)-1
With .createitem(0)
.to = sn(j, 10)
.body = "proficiat"
.send
End With
Next
End With
End Sub
Ik denk dat hij in de nachtdienst zit en nu ligt te slapen gezien de tijd van de vraagstelling: 1:44 uVoor wie doen jullie dit allemaal eigenlijk? TS zwijgt al een tijdje in alle tongen en talen. Lijkt mij dat dit weer een typisch stukje "Excelhelpers zelfbevrediging" is.
Sub M_snb()
With Sheet1.Cells(1).CurrentRegion
.Sort Cells(1, 13), , , , , , , 1
.columns(13).numberformat="ddmm"
.AutoFilter 13, Format(Date, "ddmm")
sn = .Offset(1).SpecialCells(12)
End With
With CreateObject("outlook.application")
For j = 1 To UBound(sn)-1
With .createitem(0)
.to = sn(j, 10)
.body = "proficiat"
.send
End With
Next
End With
End Sub
Misschien wel. Je mag er zelf toch ook wel wat van leren? Ik weet nu dat chatty best wel een code kan schrijven die werkt, hoewel het mogelijk wel efficiënter of eleganter kan.Lijkt mij dat dit weer een typisch stukje "Excelhelpers zelfbevrediging" is.
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.