Microsoft Excel

Herbers Excel/VBA-Archiv

Systemunabhängige Email an mehrere Empfänger

Betrifft: Systemunabhängige Email an mehrere Empfänger von: Arend
Geschrieben am: 16.01.2008 13:34:13

Hallo!

Auch nach tagelanger Suche im Netz finde ich den Fehler des folgenden Codes einfach nicht.
Das Makro soll _eine_ Mail an alle in einem bestimmten Bereich befindlichen Adressen senden.
Und das unabhängig vom Mail-Programm da es auf verschiedenen Systemen ausgeführt wird.

Oft habe ich Laufzeitfehler 13 zurück bekommen und mit dem aktuellen Code unten schreibt er
keine Adresse in die "An"-Zeile.

Wahrscheinlich nur ein kleiner Fehler, aber ich komm einfach nicht drauf.


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("MoBi").Range("H5:H28")
   sSubject = "Sammelmail an MoBi-Runde"
   sTxt = Range("B2").Value
   Call Mail(sAddress, sSubject, sTxt)
End Sub


  

Betrifft: AW: Systemunabhängige Email an mehrere Empfänger von: Rudi Maintaire
Geschrieben am: 16.01.2008 13:41:05

Hallo,
als Adresse wir ein String erwartet, du übergibst aber ein Datenfeld.

Versuch's mal so:

sAddress = Sheets("MoBi").Range("H5:H28") 'das ergibt ein Array
sAddress = Join(sAddress,";") 'wandelt das Array in einen String mit Trennzeichen ; um (ab XL2000)



Gruß
Rudi

Eine Kuh macht Muh, viele Kühe machen Mühe


  

Betrifft: AW: Systemunabhängige Email an mehrere Empfänger von: Arend
Geschrieben am: 16.01.2008 15:45:07

Danke für die schnelle Antwort!

Leider bekomme ich hier:

sAddress = Sheets("MoBi").Range("H5:H28") 



immer noch Laufzeitfehler 13 , Typen unverträglich.

So:

Sub MailVersenden()
   Dim sAddr As String, sSubject As String, sTxt As String
   sAddr = Sheets("MoBi").Range("H5:H28") 
   sAddress = Join(sAddr, ";")
   sSubject = "Sammelmail an MoBi-Runde"
   sTxt = Range("B2").Value
   Call Mail(sAddress, sSubject, sTxt)
End Sub


komme ich zumindest bis zum "call Mail" dann kommt der Fehler:
"Fehler beim kompilieren"
"Argumenttyp BYRef unverträglich"


Ano


  

Betrifft: AW: Systemunabhängige Email an mehrere Empfänger von: Rudi Maintaire
Geschrieben am: 16.01.2008 16:26:42

Hallo,
1. Dim sAddress as Variant
2. Sub Mail(ByVal sAdr, ...)

Gruß
Rudi

Eine Kuh macht Muh, viele Kühe machen Mühe


  

Betrifft: AW: Systemunabhängige Email an mehrere Empfänger von: Arend
Geschrieben am: 17.01.2008 07:40:27

Guten Morgen!

Jetzt gibt es wieder eine neue Meldung:

"Fehler beim kompilieren: Typen unverträglich."

und sAddress im call wird blau hinterlegt.


Sub MailVersenden()
   Dim sSubject As String, sTxt As String, sAddress As String
   sAddr = Sheets("MoBi")("H5:H28") 'das ergibt ein Array
   sAddress = Join(sAddr, ";") 'wandelt das Array in einen String mit Trennzeichen ; um (ab  _
XL2000)
   sSubject = "Sammelmail an MoBi-Runde"
   sTxt = Range("B2").Value
   Call Mail(ByVal sAddress, sSubject, sTxt)
End Sub




 

Beiträge aus den Excel-Beispielen zum Thema "Systemunabhängige Email an mehrere Empfänger"