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

Berekenen van sheet per rij??

Status
Niet open voor verdere reacties.

Jeof1980

Gebruiker
Lid geworden
10 aug 2010
Berichten
30
Van navolgende VBA code heb ik een stuk of 50 onder elkaar geplaatst zodat deze de correcte gegevens weergeeft in een e-mail. Het enige probleem is echte als ik b.v. in rij 15 de datum van vandaag heb staan en vervolgens in rij 20 de datum van vandaag invul bouwt excel eveneens een e-mail op voor rij 15 en niet alleen voor 20.

M.a.w. als ik in rij 20 de datum van vandaag invul zou ik graag alleen een e-mail gegenereert willen hebben voor rij 20 en niet voor alle overige rijen waar de datum van vandaag staat.

Private Sub Worksheet_Calculate()
If [f15] = Date Then

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
sTo = "g.erkens@simpelveld.nl;" & " r.notermans@simpelveld.nl"
sCC = ""
sBCC = ""
sSubject = "Vergunningverleend"
strbody = "Geachte toezichthouder," & vbNewLine & vbNewLine & _
"Navolgende omgevingsvergunning is verleend:"

With OutMail
.To = sTo
.CC = sCC
.BCC = sBCC
.Subject = sSubject
.Body = strbody & vbCrLf & vbCrLf & ActiveSheet.Range("A15").Text & vbCrLf & ActiveSheet.Range("B15").Text
.display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End If

If [f16] = Date Then

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
sTo = "g.erkens@simpelveld.nl;" & " r.notermans@simpelveld.nl"
sCC = ""
sBCC = ""
sSubject = "Vergunningverleend"
strbody = "Geachte toezichthouder," & vbNewLine & vbNewLine & _
"Navolgende omgevingsvergunning is verleend:"

With OutMail
.To = sTo
.CC = sCC
.BCC = sBCC
.Subject = sSubject
.Body = strbody & vbCrLf & vbCrLf & ActiveSheet.Range("A16").Text & vbCrLf & ActiveSheet.Range("B16").Text
.display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End If

If [f14] = Date Then

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
sTo = "g.erkens@simpelveld.nl;" & " r.notermans@simpelveld.nl"
sCC = ""
sBCC = ""
sSubject = "Vergunningverleend"
strbody = "Geachte toezichthouder," & vbNewLine & vbNewLine & _
"Navolgende omgevingsvergunning is verleend:"

With OutMail
.To = sTo
.CC = sCC
.BCC = sBCC
.Subject = sSubject
.Body = strbody & vbCrLf & vbCrLf & ActiveSheet.Range("A14").Text & vbCrLf & ActiveSheet.Range("B14").Text
.display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End If
End Sub
 
Ik weet niet of ik je vraag helemaal goed begrijp, maar onderstaande code kijkt of in rij20 de datum van vandaag staat. Zo ja, dan komt er een e-mail en wordt de macro daarna beëindigd. Zo nee, dan loopt de macro door.

Code:
Private Sub Worksheet_Calculate()

If [[COLOR="orange"]f20[/COLOR]] = Date Then

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
sTo = "g.erkens@simpelveld.nl;" & " r.notermans@simpelveld.nl"
sCC = ""
sBCC = ""
sSubject = "Vergunningverleend"
strbody = "Geachte toezichthouder," & vbNewLine & vbNewLine & _
"Navolgende omgevingsvergunning is verleend:"

With OutMail
.To = sTo
.CC = sCC
.BCC = sBCC
.Subject = sSubject
.Body = strbody & vbCrLf & vbCrLf & ActiveSheet.Range("A15").Text & vbCrLf & ActiveSheet.Range("B15").Text
.display
End With
Set OutMail = Nothing
Set OutApp = Nothing
[COLOR="orange"]exit sub[/COLOR]
End If

'en vanaf hier de rest van de code
 
Probeer deze code:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    With Target
        If .Value = Date And .Column = 6 Then
            Set OutApp = CreateObject("Outlook.Application")
            Set OutMail = OutApp.CreateItem(0)
            sTo = "g.erkens@simpelveld.nl;" & " r.notermans@simpelveld.nl"
            sCC = ""
            sBCC = ""
            sSubject = "Vergunningverleend"
            strbody = "Geachte toezichthouder," & vbNewLine & vbNewLine & _
            "Navolgende omgevingsvergunning is verleend:"
            
            With OutMail
                .To = sTo
                .CC = sCC
                .BCC = sBCC
                .Subject = sSubject
                .Body = strbody & vbCrLf & vbCrLf & .offset(0,-5).Text & vbCrLf & .Offset(0, -4).Text
                .display
            End With
            Set OutMail = Nothing
            Set OutApp = Nothing
        End If
    End With
End Sub
Het verschil is dat je na invulen van de datum de code gaat werken nadat je een ander cel hebt geselecteerd.
 
Laatst bewerkt:
Had ik ook al geprobeerd echter genereet hij nu slechts bij de eerste rij waar de datum van vandaag staat een e-mail en niet bij de rij waar de datum van vandaag ingevuld wordt. M.a.w. hij hoort op met reken zo gauw hij de datum van vandaag tegenkomt.:confused:
 
De datum wordt automatisch ingevuld via een VBA door "ja" te selecteren in voorgaande cel ik zou dus ook graag willen dat hij dan meteen een e-mail genereert zo gauw de datum wordt aangemaakt. En dan enkel voor de rij waar de datum wordt ingegeven.
 
Laatst bewerkt:
Dan kan je in je "een Vba" de mailcode toevoegen als de datum van vandaag wordt ingevuld toch?
 
Volgens mij snap ik het niet meer:o Zoals ik al zei heb ik een 50 tal Vba codes voor het verzenden van de e-mails onder elkaar geplaats zoals aangegeven boven aan. Ik wil dat hij slechts de e-mail verstuurt waar een datum middels een andere Vba ingevuld wordt.

Sorry voor de vewarring maar de datum wordt gecopieërd uit een andere sheet, dus niet middels een Vba ingevuld.
 
Waarom het gaat is dat iets [vba code] of iemand [de gebruiker] een cel voorziet van een datum.
Dan is die cel dus bekend en daarmee kan je dat de mail verzenden.

Leg dus eens uit [laat de code zien] waarmee de cel van een datum wordt voorzien.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan