Microsoft Excel

Herbers Excel/VBA-Archiv

Mailversand ohne Anlage

    Betrifft: Mailversand ohne Anlage von: Thomas Wulf
    Geschrieben am: 30.08.2003 12:31:57

    Guten Tag und fröhliches Hallo zusammen,
    ich habe da eine Wochenendbeschäftigung.Vielleicht kann mir einer dabei helfen.
    Ich habe schon das Archiv durchstöbert, aber nur den unten stehenden Code gefunden.
    Mein Ziel ist es, beide miteinander zu kombinieren.
    Wenn der Wert in Zelle A1 in meiner Arbeitsmappe >3 ist, soll automatisch eine Mail mit Outlook versandt
    werden.
    Es soll aber nicht wie im Code 1 die Arbeitsmappe als Anlage beigfügt werden, sondern wie im Code 2 nur eine
    Textnachricht gesendet werden.
    Dafür wird die Mail aber im Code 2 nicht automatisch versandt.
    Im Archiv ist Frage schon mal vorhanden, aber keine Lösung dabei.
    Wenn mir einer weiterhelfen könnte, wäre ich sehr dankbar für einen Lösungsvorschlag.

    1.) mein Code mit dem ich zur Zeit arbeite.

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Cells(1, 1) > 2 Then _
    ActiveWorkbook.SendMail _
    Recipients:="Empfängeradresse", _
    Subject:="ACHTUNG!!! Änderung in Zelle A1."
    End Sub
    


    2.) diesen Code habe ich im Archiv gefunden.

    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(eMail As String, Optional Subject As String, _
    Optional Body As String)
    Call ShellExecute(0&, "Open", "mailto:" + eMail + _
    "?Subject=" + Subject + "&Body=" + Body, "", "", 1)
    End Sub
    


    Sub MailVersenden()
    Dim eMail As String, Subject As String, Body As String
    eMail = "Empfängeradresse"
    Subject = "Betreff-Text"
    Body = "Dein zu versendender Text"
    Call Mail(eMail, Subject, Body)
    End Sub


    Schon mal danke im voraus und ein schönes Wochenende.

    schöne Grüße
    Thomas
      


    Betrifft: fast perfekte Lösung von: Reinhard
    Geschrieben am: 30.08.2003 13:16:23

    Hallo,
    so klappt es bei mir mit Outlookexpress und win98 und xl2000, allerdings muss man noch auf senden klicken.
    Gruß
    Reinhard

    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(eMail As String, Optional Subject As String, _
    Optional Body As String)
    Call ShellExecute(0&, "Open", "mailto:" + eMail + _
    "?Subject=" + Subject + "&Body=" + Body, "", "", 1)
    End Sub
    


    Sub MailVersenden()
    Dim eMail As String, Subject As String, Body As String
    eMail = "billgates@microsoft.de"
    Subject = "Du..."
    Body = "... mit deinen mistigen Programmen..."
    Call Mail(eMail, Subject, Body)
    End Sub


    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row <> 1 And Target.Column <> 1 Then Exit Sub
    If Target.Value > 2 Then Call MailVersenden
    End Sub
    



      


    Betrifft: AW: fast perfekte Lösung von: Thomas
    Geschrieben am: 30.08.2003 15:05:35

    Hallo Reinhard,
    danke für die Mühe. Es klappt auch unter XP.
    Der erste Schritt ist getan, nun muß ich nur noch sehen wie die Nachricht versendet wird ohne auf senden zu klicken.

    bis dann und ein schönes Wochenende

    Gruß Thomas


      


    Betrifft: neue Lösung, kein Klick auf Senden mehr :-) von: Reinhard
    Geschrieben am: 30.08.2003 17:27:40

    Hi Thomas,
    hatt mich wider Zeit und Nerven gekostet, bringt aber auch Spass.
    Folgendes habe ich zusammengebastelt, läuft bei mir super, egal ob OutlookExpress schon läuft oder nicht.
    Achja, ich hab die CC und BCC offen, dementsprechend muss man ggfs einige TAB rausnehmen.
    Habe das jetzt nicht getestet, aber mittels senkeys kann man sicher auch noch eine DateiAnlage anhängen.

    Gruß
    Reinhard

    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(eMail As String, Optional Subject As String, _
    Optional Body As String)
    Call ShellExecute(0&, "Open", "mailto:" + eMail + _
    "?Subject=" + Subject + "&Body=" + Body, "", "", 1)
    End Sub
    


    Sub MailVersenden()
    Dim eMail As String, Subject As String, Body As String
    eMail = "xyz@de"
    Subject = "Hallo Süßer"
    Body = "lass dich nicht unterkriegen, lächle .-)"
    Call tt
    End Sub



    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row <> 1 And Target.Column <> 1 Then Exit Sub
    If Target.Value > 2 Then Call MailVersenden
    End Sub
    

    Sub tt()
    raus = Shell("c:\Programme\Outlook Express\msimn.exe", 1)
    'AppActivate raus
    SendKeys "%" & "DNE" & "a@b.de"
    SendKeys "{TAB}" & "{TAB}" & "{TAB}" & "Feld wurde geändert" & "{TAB}"
    SendKeys "dies ist eine automatische Erinnerung, GuK "
    SendKeys "%s"
    End Sub



      


    Betrifft: AW obendrüber ist falsch, hier die Lösung von: Reinhard
    Geschrieben am: 30.08.2003 18:01:36

    Hi,
    hab mich da oben vertan, hier ist die Lösung.
    Wie gesagt, ggfs die Anzahl der TAB verändern wenn nicht die BCC und CC felder im OutlookExpress offen sind.
    Gruß
    Reinhard

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row <> 1 And Target.Column <> 1 Then Exit Sub
    If Target.Value > 2 Then Call tt
    End Sub
    

    Sub tt()
    raus = Shell("c:\Programme\Outlook Express\msimn.exe", 1)
    'AppActivate raus
    SendKeys "%" & "DNE" & "a@b.cd"
    SendKeys "{TAB}" & "{TAB}" & "{TAB}" & "Feld wurde geändert" & "{TAB}"
    SendKeys "dies ist eine automatische Erinnerung, GuK "
    SendKeys "%s"
    End Sub



      


    Betrifft: AW: AW obendrüber ist falsch, hier die Lösung von: Thomas
    Geschrieben am: 30.08.2003 19:26:34

    Hallo Reinhard,
    ich bin nicht eher dazu gekommen es auszuprobieren.
    Ich ziehe den Hut vor Dir.
    Absolut perfekt, genauso habe ich es mir vorgestellt.

    bis dann
    gruß Thomas


     

    Beiträge aus den Excel-Beispielen zum Thema " Mailversand ohne Anlage"