Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro Email versenden an ExcelKontakte

Makro Email versenden an ExcelKontakte
02.12.2015 10:13:38
kiki
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 :(

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Email versenden an ExcelKontakte
02.12.2015 10:35:35
selli
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

AW: Makro Email versenden an ExcelKontakte
02.12.2015 10:41:03
kiki
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

Anzeige
AW: Makro Email versenden an ExcelKontakte
02.12.2015 10:42:58
kiki
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

Anzeige
AW: Makro Email versenden an ExcelKontakte
02.12.2015 11:09:23
selli
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

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

AW: Makro Email versenden an ExcelKontakte
02.12.2015 22:07:18
Sepp
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

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige