2016-07-28 8 views
1

Ich bin auf der Suche nach meiner Tabelle senden E-Mails, sobald eine Zelle sich ändert.Führen Sie mein Makro, wenn Excel-Zelle ändert

Bisher habe ich ein Makro an eine Gruppe von E-Mails senden und eine Schaltfläche Makro, um dies auszulösen, aber möchte es automatisch passieren, wenn eine Zelle den Zustand ändert. Jetzt

ich habe:

Sub Create_Email_From_Excel() 
    Dim SendTo As String 
    Dim ToMSg As String 

For i = 1 To 10 
    SendTo = ThisWorkbook.Sheets(1).Cells(i, 1) 
    If SendTo <> “” Then 
     ToMSg = ThisWorkbook.Sheets(1).Cells(i, 3) 
     Send_Mail_From_Excel SendTo, ToMSg 
     End If 
    Next i 
End Sub 


Sub Send_Mail_From_Excel(SendTo As String, ToMSg As String) 
Dim OutlookApp As Object 
Dim OutlookMail As Object 

Set OutlookApp = CreateObject("Outlook.Application") 
Set OutlookMail = OutlookApp.CreateItem(0) 

With OutlookMail 
    .To = SendTo 
    .CC = "[email protected]" 
    .BCC = “” 
    .Subject = "You have mail" 
    .Body = "this is your mail" 
    .Send 
End With 

Und ...

Private Sub CommandButton1_Click 
    Create_Email_From_Excel 
End Sub 

Ich bin mir nicht sicher, wo man von hier geht oder wenn ich in der richtigen Richtung gehe. Die Befehlsschaltfläche und die Makros funktionieren, aber ich kann nicht weiter gehen.

Wenn es die Create E-Mail von Excel-Makro ausführen könnte, wenn eine Zelle in Spalte G von "ausstehend" zu "spät" wechselt, wäre das ausstehend.

+1

Werfen Sie einen Blick auf die [Worksheet_Change] (https://msdn.microsoft.com/en-us/library/office/ff839775.aspx) Veranstaltung . – tigeravatar

Antwort

0

Try Worksheet_Change Ereignis

Beispiel

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Address = "$G$1" Then 
     ' 
     'When someone Edits the cell G1 
     ' 
     Call Create_Email_From_Excel 
     ' 
     ' 
    End If 
End Sub