Microsoft Excel

Herbers Excel/VBA-Archiv

email per vba | Herbers Excel-Forum


Betrifft: email per vba von: bernd
Geschrieben am: 11.01.2010 08:27:05

hallo zusammen,
ich habe nun ein wenig im forum gesucht und eine lösung gefunden, einen zelleninhalt als
email zu versenden. es öffnet sich mein windows live mail und trägt auch alles richtig ein,
aber ich muss noch auf senden klicken ( alternativ ALT + s) damit die email raus geht.
von früher kenne ich noch den befehl Application.SendKeys "{Alt}" & "S", True aber leider kommt immer eine fehlermeldung. habt ihr ne idee, wie ich den zelleinhalt von A1 an die adresse aus B1 senden kann,
ohne dass ich noch irgendetwas drücken muss?
mein betriebssystem ist win7 ultimate und ich benutze windows live mail.

vielen dank und viele grüße
bernd

hier mein code bis jetzt:

Private Declare Function ShellExecute Lib "Shell32.dll" _
Alias "ShellExecuteA" (ByVal hWnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Private Sub Mail(sAdr As String, Optional sSub As String, _
   Optional sBody As String)
   Call ShellExecute(0&, "Open", "mailto:" + sAdr + _
      "?Subject=" + sSub + "&Body=" + sBody, "", "", 1)      
End Sub
Sub MailVersenden()
Dim sAddress As String, sSubject As String, sTxt As String
sAddress = Sheets("check").Range("B1").Value
sSubject = "test"
sTxt = Sheets("check").Range("A1").Value
Call Mail(sAddress, sSubject, sTxt)
End Sub

  

Betrifft: AW: email per vba von: Tino
Geschrieben am: 11.01.2010 09:11:53

Hallo,
versuche es mal so.

Application.SendKeys "%s", True

Schau auch mal in der Hilfe unte SendKeys

Kann es nicht testen habe hier kein Windows 7 und auch kein Windows live Mail.

Gruß Tino


  

Betrifft: AW: email per vba von: bernd
Geschrieben am: 11.01.2010 09:30:07

hallo tino,

vielen dank für deinen tip. damit kam keine fehlermeldung mehr.
ich musste aber noch die emailapplication aktivieren und dann eine pause von 5 sekunden einfügen dann gehts.
für leute mit dem gleichen problem, hier der funktionsfähige code. gestartet werden muss dann das makro test.


Private Declare Function ShellExecute Lib "Shell32.dll" _
Alias "ShellExecuteA" (ByVal hWnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Private Sub Mail(sAdr As String, Optional sSub As String, _
   Optional sBody As String)
   Call ShellExecute(0&, "Open", "mailto:" + sAdr + _
      "?Subject=" + sSub + "&Body=" + sBody, "", "", 1)
End Sub

Sub MailVersenden()
Dim sAddress As String, sSubject As String, sTxt As String
sAddress = Sheets("check").Range("B1").Value
sSubject = "WIP"
sTxt = Sheets("check").Range("A1").Value
Call Mail(sAddress, sSubject, sTxt)
End Sub
Sub test()
MailVersenden
Application.Wait (Now + TimeValue("0:00:05"))
AppActivate "WIP"
Application.SendKeys "%s", True
End Sub