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

Aanpassing automatische mail bij wijziging celwaarde

Status
Niet open voor verdere reacties.

Josno

Gebruiker
Lid geworden
7 nov 2007
Berichten
73
Ik heb als er een celwaarde in kolom P wijzigt dat hij automatische macro Mail start, dmv

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, ActiveSheet.Range("P2:P1000")) Is Nothing Then Exit Sub
Mail
End Sub

en de macro

Code:
Sub Mail()

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    sTo = Worksheets("Data mutatie VOC").Range("X7")
    sCC = ""
    sBCC = ""
    sSubject = "Wijziging opleverdatum: " & Worksheets("Data mutatie VOC").Range("F7")
    strbody = "Geachte Woonadviseur," & vbNewLine & vbNewLine & _
              "De opleverdatum van: "
   
    With OutMail
        .To = sTo
        .CC = sCC
        .BCC = sBCC
        .Subject = sSubject
        .Body = strbody & Worksheets("Data mutatie VOC").Range("F7").Text & " is gewijzigd naar " & Worksheets("Data mutatie VOC").Range("P7").Text & vbCrLf & vbCrLf & "Met vriendelijke groet" & vbCrLf & vbCrLf & vbCrLf & "Rosita Gena" & vbCrLf & "Vestigingsmanager VOC Oegstgeest"
        .display
    End With
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

Echter mijn macro voor de mail is gerelateerd aan een vaste cel.
De gegevens van het email adres staan in kolom X en variereren. Is het mogelijk de macro voor de mail aan te passen zodat als ik bijv in cel P100 de datum wijzigt hij het e-maiadres uit X100 haalt en al de waardes met ook de waarde van F100 in mail weer geeft
 
Laatst bewerkt door een moderator:
Is dit wat je bedoelt?
Ik ga er wel vanuit dat als er in kolom P een datum verandert wordt er een enter gegeven wordt.




Code:
Sub Mail()
rij = ActiveCell.Row - 1


Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
sTo = Worksheets("Data mutatie VOC").Cells(rij, 24)
sCC = ""
sBCC = ""
sSubject = "Wijziging opleverdatum: " & Worksheets("Data mutatie VOC").Cells(rij, 6)
strbody = "Geachte Woonadviseur," & vbNewLine & vbNewLine & _
"De opleverdatum van: "

With OutMail
.To = sTo
.CC = sCC
.BCC = sBCC
.Subject = sSubject
.Body = strbody & Worksheets("Data mutatie VOC").Cells(rij, 6).Text & " is gewijzigd naar " & Worksheets("Data mutatie VOC").Cells(rij, 16).Text & vbCrLf & vbCrLf & "Met vriendelijke groet" & vbCrLf & vbCrLf & vbCrLf & "Rosita Gena" & vbCrLf & "Vestigingsmanager VOC Oegstgeest"
.display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Niels
 
Dank voor je reactie

Is dit wat je bedoelt?
Ik ga er wel vanuit dat als er in kolom P een datum verandert wordt er een enter gegeven wordt.




Code:
Sub Mail()
rij = ActiveCell.Row - 1


Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
sTo = Worksheets("Data mutatie VOC").Cells(rij, 24)
sCC = ""
sBCC = ""
sSubject = "Wijziging opleverdatum: " & Worksheets("Data mutatie VOC").Cells(rij, 6)
strbody = "Geachte Woonadviseur," & vbNewLine & vbNewLine & _
"De opleverdatum van: "

With OutMail
.To = sTo
.CC = sCC
.BCC = sBCC
.Subject = sSubject
.Body = strbody & Worksheets("Data mutatie VOC").Cells(rij, 6).Text & " is gewijzigd naar " & Worksheets("Data mutatie VOC").Cells(rij, 16).Text & vbCrLf & vbCrLf & "Met vriendelijke groet" & vbCrLf & vbCrLf & vbCrLf & "Rosita Gena" & vbCrLf & "Vestigingsmanager VOC Oegstgeest"
.display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Niels

Ik voer de gegevens in dmv een invoerformulier ik weet niet of er dan na het invoeren van een nieuw record of wijziing er een enter wordt gegeven. Ik ga er mee aan de slag
 
Ik snap niet wat je bedoeld met:
Ik voer de gegevens in dmv een invoerformulier ik weet niet of er dan na het invoeren van een nieuw record of wijziing er een enter wordt gegeven. Ik ga er mee aan de slag

De vraag is toch als er in kolom P iets wijzigt, dan heb je toch niks met een nieuwe record te maken/
Als je en cel wijzigt is het gebruikelijk dat je enter geeft en dat je dan een cel lager komt te staan vandaar
Code:
activeCell.Row - 1
, je enter kan naar recht ingesteld staan en dan moet de -1 weggelaten worden.




Niels
 
Laatst bewerkt:
Reactie op je mail

Ik snap niet wat je bedoeld met:


De vraag is toch als er in kolom P iets wijzigt, dan heb je toch niks met een nieuwe record te maken/
Als je en cel wijzigt is het gebruikelijk dat je enter geeft en dat je dan een cel lager komt te staan vandaar
Code:
activeCell.Row - 1
, je enter kan naar recht ingesteld staan en dan moet de -1 weggelaten worden.




Niels

Niels,

De macro werkt perfect als ik in het excelsheet in kolom P een datum wijzigt. Echter ik maak gebruik van een invoerformulier en hij wijzigt dan wel de gegevens maar selecteer kennelijk de rij niet. Is het mogelijk dat als ik in het invoerformulier de opleverdatum wijzigt welke in kolom P dan de datum aanpast de mailmacro te laten lopen met de waarde uit desbetreffend cellen die jij in je macro heb staan
 

Bijlagen

  • invoerformulier.gif
    invoerformulier.gif
    13,6 KB · Weergaven: 37
Dat zal best mogelijk zijn.
Ik weet niet of ik je daar mee kan helpen maar zonder
voorbeeldbestand ontdaan van gevoelige informatie kan ik
of iemand anders niks.

Maar je wijzigd de datum dus altijd met een userform?
 
Het gevraagde bestandje

Dat zal best mogelijk zijn.
Ik weet niet of ik je daar mee kan helpen maar zonder
voorbeeldbestand ontdaan van gevoelige informatie kan ik
of iemand anders niks.

Maar je wijzigd de datum dus altijd met een userform?

Niels in het werkblad Data Mutatie VOC heb je een macroknop invoerformulier als je dan bij opleverdatum de datum wijzigt dan moet er de mail uitgestuurd worden met de gevraagde rijen
 

Bijlagen

Ik heb in mijn macro Cells(rij, 1) gebruikt om te verwijzen naar de juiste regel.
In jouw userform zoek je de regel op met de waarde P.row

In de mail macro moet je .Cells(rij, 1) dan veranderen in .Cells(P.Row, 1)

Ik weet alleen niet waar je de mail macro neer moet zetten.

Misschien kan iemand anders je hier mee helpen.



Niels
 
Laatst bewerkt:
Dank je wel

Ik heb de mailoptie toegevoegd aan:

Private Sub Cmd_Wijzigen_Click()

Ik neem aan dat deze de wijzigingen verwerkt.
Ik weet niet of het werkt want kan het vanaf deze computer niet testen
en het userform werkt bij mij niet.

Bekijk bijlage 118611

Niels

Ik ga ermee aan de slag alvast bedankt
 
Sorry,

Was mijn antwoord aan het aanpassen tijdens jouw reactie,
Mijn bestandje wat erbij staat klopt niet want de mail wordt dan altijd
verstuurt ook al verandert er iets anders.

Niels
 
Probeer het zo eens.

Code:
Private Sub Txt_Datum_Oplev_AfterUpdate()

If Txt_Datum_Oplev.Text = "" Then Exit Sub

    Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
sTo = "josno"
sCC = ""
sBCC = ""
sSubject = "Wijziging opleverdatum: " & Cbo_Zoek_Adres.Text
strbody = "Geachte Woonadviseur," & vbNewLine & vbNewLine & _
    "De opleverdatum van: "
    
With OutMail
        .To = sTo
        .CC = sCC
        .BCC = sBCC
        .Subject = sSubject
        .Body = strbody & Cbo_Zoek_Adres.Text & " is gewijzigd naar " & Txt_Datum_Oplev.Text & vbCrLf & vbCrLf & "Met vriendelijke groet" & vbCrLf & vbCrLf & vbCrLf & "Rosita Gena" & vbCrLf & "Vestigingsmanager VOC Oegstgeest"
        .display
    End With
    Set OutMail = Nothing
    Set OutApp = Nothing
    
End Sub


code toevoegen aan userform.
Ipv naar het excelbestand te kijken leest hij nu het formulier.


Niels
 
Laatst bewerkt:
De laatste oplossing werkt goed

Probeer het zo eens.

Code:
Private Sub Txt_Datum_Oplev_AfterUpdate()

If Txt_Datum_Oplev.Text = "" Then Exit Sub

    Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
sTo = "josno"
sCC = ""
sBCC = ""
sSubject = "Wijziging opleverdatum: " & Cbo_Zoek_Adres.Text
strbody = "Geachte Woonadviseur," & vbNewLine & vbNewLine & _
    "De opleverdatum van: "
    
With OutMail
        .To = sTo
        .CC = sCC
        .BCC = sBCC
        .Subject = sSubject
        .Body = strbody & Cbo_Zoek_Adres.Text & " is gewijzigd naar " & Txt_Datum_Oplev.Text & vbCrLf & vbCrLf & "Met vriendelijke groet" & vbCrLf & vbCrLf & vbCrLf & "Rosita Gena" & vbCrLf & "Vestigingsmanager VOC Oegstgeest"
        .display
    End With
    Set OutMail = Nothing
    Set OutApp = Nothing
    
End Sub


code toevoegen aan userform.
Ipv naar het excelbestand te kijken leest hij nu het formulier.


Niels

Niels bedankt het werkt met die laatste oplossing


Ik zal de vraag op opgelost zetten
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan