Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
448to452
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
448to452
448to452
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Email versenden

Email versenden
01.07.2004 17:44:36
Stefan
Hallo,
im Forum habe ich ein feines VBA-Teilchen gefunden. Nur leider bin ich nicht in der Lage dieses so umzuschreiben, dass es meine Bedürnisse befriedigt...deswegen wende ich mich hilfesuchend an euch:
folgendes makro habe ich gefunden

Sub Sample()
Dim olApp As Object
Dim olMailItm As Object
Dim iCounter As Integer
Set olApp = CreateObject("Outlook.Application")
Set olMailItm = olApp.CreateItem(0)
With olMailItm
For iCounter = 1 To WorksheetFunction.CountA(Columns(1))
.BCC = Cells(iCounter, 1).Value
.Subject = "Kosteninformation"
.Body = Cells(iCounter, 2).Value
.Send
Next iCounter
End With
Set olMailItm = Nothing
Set olApp = Nothing
End Sub

Meine Probleme:
1. Wie kann ich im Body-Bereich den Bezug auf mehrer Zellen erstellen. Ich möchte gerne noch Werte aus den nachfolgenden Spalten einfügen. Das einfügen einer weiteren Befehlszeile a la
.Body = Cells(iCounter, 3).Value führte nicht zu gewünschten Erfolg.
Mein Ziel ist es mehrer Werte aus mehrere Zellen zu integrieren und das ganze optisch aufzubereiten (leerezeilen etc.)
2. beim aufrufen des makros werde ich informiert, dass eine Anwendung automatishc emails versendet. kann man das unterbinden (nicht generell, nur beim öffnen dieser datei ?)
Der zweite Punkt ist nicht so wichtig......
Danke euch für jeden Tip.
Gruß
Stefan

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Email versenden
Galenzo
Hallo,
wenn du mehrere Zellen versenden willst, definierst du diesen bereich als Range, also z.B. so:
.Body = Range("A1:C10")
oder
.Body = Range(Cells(iCounter, 3),Cells(iCounter,15)
Punkt 2 weiß ich auch nicht :-(
Viel Erfolg!
AW: Email versenden
02.07.2004 10:06:24
stefan
hi galenzo
danke für deine mail. also das mit dem range passt leider nicht ganz so. ich habe mich ein wenig blöd ausgedrückt. die zusätzliche zellenwerte solllen in kewils neue zeilen. mit range habe ich ja alle in einer zeile.
ich muss die mail ja ein bischen gestalten (zumindest mal neue zeilen etc.)
trotzdem danke
AW: Email versenden
Galenzo
ach so,
dann mußt also du den Bereich durchlaufen, die Zelle lesen und dann immer einen einen Zeilenumbruch reinbauen.
z.B. so:
Dim c As Range
Dim s As String
For Each c In Range("A1:C10")
s = s & c & vbCrLf
Next
.body = s
Probier's mal...
Anzeige
AW: Email versenden
02.07.2004 11:06:22
stefan
hi galenzo,
langsam komme ich meiner lösung nahe (ich habe auch ein tool gefunden, welches die Sicherheitsabgrafe bei Item.Send bestätigt. Ich möchte einige hundert Mails auf diesem Weg versenden und das ist mit einer Bestätigung jeder Email sehr langwieirig.)
Aber zurück zu meinem Problem:
Mein VBA Code findest du anbei. Also ich möchte nochmal mein Problem darstellen (nicht immer drücke ich mich so verständlich aus).
Also ich habe zig zeilen. in jeder zeile sind alle informationen die ich brauche in spalten unterteilt:
1. Spalte Email EMpfänger
2. Spalte Betreff usw.
Nun möchte ich per Info versenden und dafür den text ein wenig gestalten.
Also nach dem Schema
Hallo "Zelle A1"
du hast im spiel "B1" mit "C1" blabla
für den "D1" ist ein neuer Termin anberaumt etc.
das ganze dann in einer neuen mail für zeile 2 usw.
Eine reine Serienmail kann ich nicht machen, da jede zelle individuelle infos für den empfänger enthält..
MIt deinem Tip Range, bekommt jeder empfänger die gleichen infos, aber jeder soll nur die range seiner Zeile bekommen !
Noch ne andere Frage. In dem VBA Code werden nur die ersten 10 zeilen abgefragt. Wie kann ich den das ganze bis zur letzen gefüllten Zeile erweitern ?
Danke !!!

Sub Excel_Serienmail_via_Outlook_Senden()
Dim OutApp As Object, Mail As Object
Dim i As Integer
Dim Nachricht
Dim c As Range
Dim s As String
For i = 1 To 10
'Variablen müssen bei jeder Schleife neu initalisiert werden
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = Cells(i, 1) 'Adresse
.Subject = Cells(i, 2) 'Betreffzeile
For Each c In Range("A1:C10")
s = s & c & vbCrLf
Next
.body = s
'Sendetext
'Hier wird die Mail zuerst angezeigt
'.Display
'Hier wird die Mail gleich in den Postausgang gelegt
.Send
End With
'Variablen zurücksetzen sonst geht es nicht
Set OutApp = Nothing 'CreateObject("Outlook.Application")
Set Nachricht = Nothing 'OutApp.CreateItem(0)
Application.Wait (Now + TimeValue("0:00:05"))
Next i
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige