Makro Email versenden an ExcelKontakte

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Makro Email versenden an ExcelKontakte
von: kiki
Geschrieben am: 02.12.2015 10:13:38

Hallo zusammen...
ich habe eine Exceltabelle in der u.a. in unterschiedlichen Spalten, Zeilen, Zellen Emailadressen stehen. ich möchte dass wenn man auf eine Schaltfläche klickt, diese Email Adressen rausgefiltert werden, Duplikate gelöscht, Outlook email senden geöffnet und die Kontakte in den Empfänger eingesetzt werden.
Kann mir jemand helfen? ich bin kein Profi was Makros angeht :(

Bild

Betrifft: AW: Makro Email versenden an ExcelKontakte
von: selli
Geschrieben am: 02.12.2015 10:35:35
hallo kiki,
dieses forum bietet die möglichkeit im archiv zu recherchieren.
da dieses thema schon sehr oft hier behandelt wurde und deine ungenauen angeben ohnehin keine, auf dich zugeschnittene lösung zulassen, solltest du da fündig werden.
gruß
selli

Bild

Betrifft: AW: Makro Email versenden an ExcelKontakte
von: kiki
Geschrieben am: 02.12.2015 10:41:03
ich suche schon seit Tagen nach einem passenden Beitrag oder nach Makros die ich mir zuecht basteln kann. finde jdoch nichts oder es klappt nicht

Bild

Betrifft: AW: Makro Email versenden an ExcelKontakte
von: kiki
Geschrieben am: 02.12.2015 10:42:58
mein letzter stand sieht wie folgt aus:

Sub MailProgrammÖffnen()
On Error Resume Next
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.display
.To = ???
.cc="test@test.de;test2@test.de" 'Optional Kopie an
.bcc="test@test.de;test2@test.de" 'Optional Bliendkopie an
.Subject = "Guten Tag"
.Body = "Hallo!" & vbCrLf & vbCrLf & "Gruß," & " " & Application.UserName
End With
End Sub

aber ich weiß nicht wie ich da bei "to=.." die ganze emails einfügen lassen kann die er vorher raussuchen soll, bzw. die duplakte löschen muss

Bild

Betrifft: AW: Makro Email versenden an ExcelKontakte
von: selli
Geschrieben am: 02.12.2015 11:09:23
hallo kiki,
wundert dich das wirklich?
genauso wenig wie wir, bei denen du hilfe suchst, weiß dein makro beispielsweise wie deine tabelle heißt,wie sie aufgebaut ist, in welchem bereich mailadressen zu finden sind und schon gar nicht weiß irgendjemand welche dieser adressen in den verteiler sollen.
gruß
selli

Bild

Betrifft: AW: Makro Email versenden an ExcelKontakte
von: kiki
Geschrieben am: 02.12.2015 11:10:42
Vielen Dank Selli,
hier werde ich nicht wieder was nachfragen!

Bild

Betrifft: AW: Makro Email versenden an ExcelKontakte
von: Sepp
Geschrieben am: 02.12.2015 22:07:18
Hallo Kiki,
in ein allgemeines Modul. (Tabellenname anpassen!)

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub collectMailAddresses()
Dim rng As Range
Dim strAddress() As String, strFind() As String, strFirst As String, strTo As String
Dim varTmp As Variant
Dim lngI As Long, lngN As Long, lngM

With Sheets("Tabelle1") 'Tabellenname anpassen!
  Set rng = .UsedRange.Find(What:="@", LookIn:=xlValues, LookAt:=xlPart, _
    MatchCase:=False, SearchFormat:=False)
  'Zellen mit Mailadressen ermitteln
  If Not rng Is Nothing Then
    strFirst = rng.Address
    Do
      Redim Preserve strFind(lngI)
      strFind(lngI) = rng.Text
      lngI = lngI + 1
      Set rng = .UsedRange.FindNext(rng)
    Loop While Not rng Is Nothing And rng.Address <> strFirst
  End If
  'Mailadressen extrahieren und prüfen
  If lngI > 0 Then
    For lngI = 0 To UBound(strFind)
      varTmp = Split(strFind(lngI), " ")
      For lngN = 0 To UBound(varTmp)
        If InStr(1, varTmp(lngN), "@") > 0 Then
          If IsValidMailAddress(varTmp(lngN)) Then
            Redim Preserve strAddress(lngM)
            strAddress(lngM) = varTmp(lngN)
            lngM = lngM + 1
          End If
        End If
      Next
    Next
  End If
  'Mail vesenden
  If lngM > 0 Then
    strTo = Join(strAddress, ";")
    Call sendMailOL(strTo)
  Else
    MsgBox "Keine Mailadressen gefunden!", vbInformation
  End If
End With

Set rng = Nothing
End Sub

Sub sendMailOL(Recipient As String)
Dim objOL As Object, objMail As Object

Set objOL = CreateObject("Outlook.Application")
Set objMail = objOL.CreateItem(0)


On Error Resume Next
With objMail
  .To = Recipient
  .CC = "test@test.de;test2@test.de" 'Optional Kopie an
  .BCC = "test@test.de;test2@test.de" 'Optional Bliendkopie an
  .Subject = "Guten Tag"
  .Body = "Hallo!" & vbCrLf & vbCrLf & "Gruß," & " " & Application.UserName
  '.Attachments.Add ("D:\yourFile")
  .Send '.Display
End With
On Error GoTo 0

Set objMail = Nothing
Set objOL = Nothing
End Sub

Private 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

Gruß Sepp


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Makro Email versenden an ExcelKontakte"