Makro E-Mail versenden

Blubbfisch

Mitglied
Hallo,

ich habe folgendes Problem. Ich habe mit Excel eine Tabelle erstellt mit 5 Spalten:
Name, E-mail, Thema, Ergebnisse, Datum
Ich will jetzt, dass wenn man auf das Feld, in dem der name steht, eine E-mail mit Outlook versendet wird mit folgendem Inhalt:
Adressat: E-Mail
Betreff: Thema
Nachricht: Ganze Zeile der Tabelle auf die man geklickt hat.

Hat dazu einer von euch eine Idee?

Wär cool, wenn mir jemand helfen könnte.
 
anscheinend kann mir keiner helfen, hab mir jetzt selber geholfen, brauch aber trotzdem nochmal kurz hilfe zu nem kleineren problem, hoffe, dass jetzt ein bescheid weiß. und zwar das ist mein code:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$7" Then
SendEmail
End If
End Sub


Private Sub SendEmail()

Dim Outlook As Object
Dim Recipient As Object
Dim Message As Object

Set Outlook = CreateObject("Outlook.Application")
Set Message = Outlook.CreateItem(0)
With Message
Set Recipient = .Recipients.Add("recipient@company.com")
.Subject = "Betreff"
.body = "Inhalt1"
.send
End With

End Sub


Mir geht es jetzt um die fettgedruckte Stelle. Wie kann ich hier die Adresse eintragen, die in der Zelle steht, die ich vorher anklicken musste (B7), um die E-Mail zu versenden?
 
Cool,

und jetzt wäre es schön, zu wissen, wie man die Warnungen
abschaltet, damit man ohne Ja-Klickerei eine E-mail versendet.
 
ja, des hat mich auch schon gestört, aber erstmal will ich dass alles funktioniert, bevor ich mir darüber gedanken mach ^^

danke übrigens, es hat geklappt
 
ich hab es ja bisher so, dass das feld b7 als empfänger eingetragen wird. also die zeile:

Set Recipient = .Recipients.Add(Range("B7").Value)

wir kann ich es ändern, dass immer das feld eingetragen wird, auf welches ich klicke. zum einen muss ich ja mein ersten teil so abändern:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
SendEmail
End Sub

und zum andern muss ich ja dann die zeile mit dem empfänger ändern. wie kann ich des anstellen?
 
Hi,

weil Du besser

Set Recipient = .Recipients.Add(ActiveCell.Value)

schreibst.

Du kannst natürlich auch folgendes machen:

Set Recipient = .Recipients.Add(Cells(ActiveCell.Row, 10).Value)

Du siehst: Unendliche Weiten tuen sich vor Dir auf :)

Ich würde aber vorher noch sicherstellen, dass der User zumindest in der richtigen Spalte ist.
If ActiveCell.Row <> 10 Then
MsgBox "Mensch Meier, aktiviere die richtige Zelle
End If

Evtl. noch prüfen, ob die Zelle auch wirklich nen Wert hat usw. usw :)

Gruß
Das Orakel
 
Die Prüfung, ob der User in der richtigen Spalte ist hab ich schon geschrieben.

Deine Lösung klappt aber leider nicht. er gibt, wie vorher auch als ich was probiert hab die Fehlermeldung : "Object required" aus :-(
 
Zurück