Makro: Email an Email-Adressen aus Excel Tabelle über Schaltfläche schicken?

2 Antworten

Ist das die Folgefrage zum Suchen der E-Mail Adressen?

Sub suche2()
Dim rCell As Range
Dim rRng As Range
Dim quelle As String
Dim mails As String
quelle = "Tabelle2"
Set rRng = Sheets(quelle).Range("A1:C10")
For Each rCell In rRng.Cells
If InStr(1, rCell, "@", vbTextCompare) > 0 And InStr(1, mails, rCell, vbTextCompare) = 0 Then mails = mails & ";" & rCellNext rCell
Dim olapp As Object
Set olapp = CreateObject("Outlook.Application")
With olapp.CreateItem(0) .to = mails .Save
End With
MsgBox ("Schau in Deine Outlook Entwürfe")
End Sub

Die Aussage wird nicht mehr in die Tabelle geschrieben, sondern direkt in Outlook.

kikichog 
Fragesteller
 01.12.2015, 14:44

hmm. irgendwie passiert hier nichts wenn ich auf die Schaltfläche dann klicke :(

0
Ninombre  01.12.2015, 14:54
@kikichog

Hast Du die jeweils auf die geänderten Namen der Makros angepasst?

0

Wenn es Dir lieber ist, vorher noch in Excel kontrollieren zu können, dann kannst Du auch die Variante nehmen: Die schreibt die Gesamtliste der Namen mit ; getrennt in ein festgelegtes Feld (in meinem Beispiel Tabelle4 A1 -> Tabelle4.cells(1,1).value was Du beliebig anpassen kannst)

Sub suche3()
Dim rCell As Range
Dim rRng As Range
Dim quelle As String
Dim mails As String
quelle = "Tabelle2"
Set rRng = Sheets(quelle).Range("A1:C10")
For Each rCell In rRng.Cells
If InStr(1, rCell, "@", vbTextCompare) > 0 And InStr(1, mails, rCell, vbTextCompare) = 0 Then mails = mails & ";" & rCellNext rCell
Tabelle4.cells(1,1).value=mails
End Sub
kikichog 
Fragesteller
 01.12.2015, 14:36

der zeigt mir bei "If Instr..." einen SyntaxFehler

0
Ninombre  01.12.2015, 14:54
Sub suche3()
Dim rCell As Range
Dim rRng As Range
Dim quelle As String
Dim mails As String
quelle = "Tabelle2"
Set rRng = Sheets(quelle).Range("A1:C10")
For Each rCell In rRng.Cells
If InStr(1, rCell, "@", vbTextCompare) > 0 And InStr(1, mails, rCell, vbTextCompare) = 0 Then mails = mails & ";" & rCell
Next rCell
Tabelle4.cells(1,1).value=mails
End Sub

Da war ein Zeilenumbruch falsch

0
kikichog 
Fragesteller
 02.12.2015, 09:35
@Ninombre

hmm... iwie klappt jetzt gar nichts mehr :(

0
kikichog 
Fragesteller
 02.12.2015, 09:47
@kikichog

ich habe jetzt dieses makro. leider weiß ich nicht wie ich da bei"senden an" die email adressen aus der excel tabelle einfügen lassen kann. wie gebe ich da an dass er nach allen worten mit dem "@" suchen soll und die da mit ";" eintragen soll?


Sub EMail()

On Error Resume Next

Set olApp = CreateObject("Outlook.Application")

With olApp.CreateItem(0)

.Display

.To = ???

.CC = "" 'Optional Kopie an

.BCC = "" 'Optional Bliendkopie an

.Subject = "HotNews"

.Body = "Hallo!" & vbCrLf & vbCrLf & "Gruß," & " " & Application.UserName

End With

End Sub

0
Ninombre  02.12.2015, 13:47
@kikichog

Dafür hatte ich ja zwei Varianten beschrieben. Suche2 legt die zusammenkopierten E-Mail Adressen in den Entwurf ab, Suche3 speichert den Wert in der Exceltabelle (also einfach rauskopieren und manuell in Outlook einfügen).

Was genau funktioniert denn bei den beiden Varianten nicht? Wenn die den Code in Visual Basic hast und mit F8 Zeile für Zeile durchgehst, müsste er bei irgendeiner Zeile eine Fehlermeldung ausgeben. Wo und was meckert das Programm genau an? Bei Suche3 musst Du nur drei Dinge anpassen:
- Wie heißt das Tabellenblatt in dem die E-Mail Adressen zu suchen sind?
- In welchem Bereich stehen diese?
- Wo soll das Ergebnis gespeichert werden.

Die drei Punkte sind fett markiert:

Sub suche3()
Dim rCell As Range
Dim rRng As Range
Dim quelle As String
Dim mails As String
quelle = "Tabelle2"
Set rRng = Sheets(quelle).Range("A1:C10")
For Each rCell In rRng.Cells
If InStr(1, rCell, "@", vbTextCompare) > 0 And InStr(1, mails, rCell, vbTextCompare) = 0 Then mails = mails & ";" & rCell
Next rCell
Tabelle4.cells(1,1).value=mails
End Sub
0
kikichog 
Fragesteller
 02.12.2015, 13:54
@Ninombre

Vielen Dank für deine Hilfe! es klappt jetzt über ein paar Umwege ;)

aber du hast mir sehr geholfen!

0