Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1236to1240
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

nach kriterien email senden

nach kriterien email senden
amintire
Hallo alle zusammen,
weiß leider nicht wie ich zum alten Beitrag verlinken kann, daher einen neuen Beitrag.
Der alte Beitrag hat das gleiche Thema und ist vom vom 10.10.2011 19:16:5
Folgendes Problem, möchte das die E-Mails die gesendet werden an 3 Personen in Kopie auch immer gesendet werden, beim Code ist nur eine Mail Adresse möglich. Was bzw. wie muss ich das ändern bzw. anpassen? Vielen Dank für Eure Hilfe.
Anbei der Code:
**********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************
Option Explicit
Const cstrMyAddress As String = "deine.mail@adresse.com"
Sub SendNotesMail()
'Variablendeklaration gehört immer an den Anfang!
Dim Maildb As Object, MailDoc As Object, Session As Object, EmbedObj As Object, AttachME As Object
Dim MailDbName As String, strRecipient As String, strMsg As String, strSubj As String
Dim rng As Range
Dim lngCol As Long
On Error GoTo ErrExit
tranquilize
ActiveWorkbook.Save
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Set Session = CreateObject("Notes.NotesSession")
Set Maildb = Session.CURRENTDATABASE
With Sheets("Übersicht")
For Each rng In .Range("A3:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
If rng "" Then
strRecipient = ""
If IsValidMailAddress(rng.Offset(0, 3).Text) Then
If Not IsDate(rng.Offset(0, 7)) Then
For lngCol = 4 To 6
If rng.Offset(0, lngCol) = "x" Then
strRecipient = rng.Offset(0, 3).Text
strMsg = "Sehr geehrte" & IIf(rng = "Herr", "r ", " ") & rng.Text & " " & _
rng.Offset(0, 1).Text & " " & rng.Offset(0, 2).Text & "!" & _
vbCrLf & vbCrLf & Sheets(.Cells(2, lngCol + 1).Text).Range("A2").Text
strSubj = Sheets(.Cells(2, lngCol + 1).Text).Range("A1").Text & _
" - " & rng.Offset(0, 1).Text & " " & rng.Offset(0, 2).Text
Exit For
End If
Next
End If
If strRecipient "" Then
Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.Form = "Memo"
MailDoc.sendto = strRecipient
MailDoc.CopyTo = cstrMyAddress
MailDoc.Subject = strSubj
MailDoc.Body = strMsg
MailDoc.PostedDate = Now
MailDoc.SEND 0, strRecipient
rng.Offset(0, 7) = Now
End If
Else
rng.Offset(0, 7) = "ungültige Mailaddresse!"
End If
End If
Next
End With
ErrExit:
tranquilize True
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing
End Sub
Public Function IsValidMailAddress(ByVal strAddress As String) As Boolean
Dim oRegExp As Object
Set oRegExp = CreateObject("vbscript.regexp")
With oRegExp
.Pattern = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|" & _
"}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:" & _
"[a-z0-9-]*[a-z0-9])?"
.IgnoreCase = True
IsValidMailAddress = .test(strAddress)
End With
Set oRegExp = Nothing
End Function
Public Sub tranquilize(Optional ByVal Modus As Boolean = False)
Static lngCalc As Long
With Application
.ScreenUpdating = Modus
.EnableEvents = Modus
.DisplayAlerts = Modus
.EnableCancelKey = IIf(Modus, 1, 0)
If Not Modus Then lngCalc = .Calculation
If Modus And lngCalc = 0 Then lngCalc = -4105
.Calculation = IIf(Modus, lngCalc, -4135)
.Cursor = IIf(Modus, -4143, 2)
End With
If Modus Then
With Err
If .Number  0 Then
MsgBox IIf(Erl, vbLf & "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
"Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbLf & _
.Description, vbExclamation, "Fehler"
End If
.Clear
End With
End If
End Sub

Lieben Gruß Amina

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: nach kriterien email senden
07.11.2011 12:46:48
Bertram
Hallo Amina,
wenn ich das recht verstehe, dann probiers mal so:
Const cstrMyAddress As String = "deine.mail@adresse.com,deine.mail2@adresse.com,deine.mail3@adresse.com"
Und dann statt
MailDoc.CopyTo = cstrMyAddress
füge diese Zeile ein:
MailDoc.CopyTo = Split(cstrMyAddress,",")
Gruß
Bertram
AW: nach kriterien email senden
07.11.2011 12:51:33
Rudi
Hallo,
die musst du in ein Array packen.
MailDoc.CopyTo = Array("Adresse1@server.de", "Adresse2@server.de", "Adresse3@server.de")
Gruß
Rudi
AW: nach kriterien email senden
07.11.2011 13:31:34
amintire
Hallo,
vielen Dank für Eure Hilfe.
Funktioniert leider in beiden Methoden nicht. Schicke mir als Test eben drei Mal an meiner Adresse als Kopie die E-Mail, bekomme sie bei Version 1 als Kopie nur einmal und bei Version 2 bekomme ich keine Kopie.
Gibt es noch eine andere Möglichkeit?
Lieben Gruß
Amina
Anzeige
AW: nach kriterien email senden
07.11.2011 13:35:05
Bertram
Hallo,
wenn du dir die Mail selber schickst, spielt es keine Rolle wie oft du im Verteiler stehst. Die Mail kriegst du nur einmal. Versuch doch mal mit 2 weiteren Adressen/Kollegen deines Vertrauens:-)
Gruß
Bertram
AW: funktioniert doch ;))
07.11.2011 13:33:29
amintire
Danke.
Lieben Gruß
Amina

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige