Hallo,
Bitte versuchen Sie den folgenden Code
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRg As Range
If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Range("c:c"), Target) Is Nothing Then Exit Sub
If Target.Value = "done" Then
Set xRg = Target.Offset(0, -1) 'Find email address
Call Mail_small_Text_Outlook(xRg.Value)
End If
End Sub
Sub Mail_small_Text_Outlook(ByVal xTo As String)
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi there" & vbNewLine & vbNewLine & _
"This is line 1" & vbNewLine & _
"This is line 2"
On Error Resume Next
With xOutMail
.To = xTo
.CC = ""
.BCC = ""
.Subject = "send by cell value test"
.Body = xMailBody
.Display 'or use
' .Send
End With
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub
Sie haben erwähnt, dass Sie eine E-Mail an den PM senden möchten, dessen Initialen in derselben Zeile stehen, die als abgeschlossen markiert wurde. Befindet sich seine/ihre E-Mail-Adresse in derselben Zeile? Der Code in der 6. Reihe hilft, die Initialen des Projektmanagers zu finden, Sie können ihn ändern, damit er die E-Mail-Adresse findet.
Bitte ändern Sie die Zeichenfolge "done" in der 5. Zeile in die tatsächliche Zeichenfolge, die Sie verwenden, um den Auftrag als abgeschlossen zu markieren.
Beachten Sie, dass Sie das unten stehende Snippet an Ihre Bedürfnisse anpassen können.
xMailBody = "Hallo" & vbNewLine & vbNewLine & _
"Das ist Zeile 1" & vbNewLine & _
"Das ist Linie 2"
On Error Resume Next
Mit xOutMail
.To = xTo
.CC = ""
.BCC = ""
.Subject = "Send by Cell Value Test"
.Body = xMailBody
.Display 'oder verwenden
' .Senden
Ende mit
Wenn Sie Fragen haben, zögern Sie bitte nicht, mich zu fragen.
Amandas