Anzeige
Archiv - Navigation
1312to1316
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

VBA Mail ohne Nachfrage senden

VBA Mail ohne Nachfrage senden
16.05.2013 08:35:07
gisela
Hallo,
ich brauche Hilfe beim Mailversand.
Die Mail soll einmal am Tag versandt werden.
Das klappt nicht immer. Warum weiss ich nicht. Die Mail erscheint dann auf meinem Desktop und ich muss senden nochmal bestätigen. Der Inhalt der Mail ist ok.
Die Mail soll ohne Nachfrage direkt gesendet werden.
Hier der Makro, der aus meiner Gogglesuche stammt:
Sub Email()
Application.ScreenUpdating = False
Sheets("tagesmit").Select
Range("M14").FormulaR1C1 = "0"
Range("M14").Select
Application.Wait Now + TimeValue("00:00:01")
If InStr(ActiveCell.Value, "0") > 0 Then
ActiveCell.Replace What:="0", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Range(ActiveCell.Offset(0, -0), ActiveCell.Offset(0, -4)).Select
Selection.Copy
Application.ScreenUpdating = False
Dim strName As String
Dim ol, Mail As Object
Set ol = CreateObject("Outlook.Application")
Set Mail = ol.CreateItem(0)
Mail.Subject = " Tagesanwesenheit Viernheim " & Now
Mail.To = "gisela@xxx.de"
Mail.cc = ""
Mail.bcc = ""
Application.SendKeys "{TAB}"
Mail.body = Chr(13) & "Hallo, ?" & Chr(13) & _
"o.a. die Tagesübersicht" & Chr(13) & "Liebe Grüße" & Chr(13) & "Gisela" & Chr(13) & _
"Dieses Mail wurde automatisch versandt"
Mail.Display
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys ("^v")
Application.SendKeys "%s", True
End If
End Sub
Vielen Dank für jede Hilfe
gisela

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Mail ohne Nachfrage senden
16.05.2013 08:38:37
Klaus
Hallo Gisela,
das ist ja schrecklich mit den ganzen sendkeys ....
kurze Lösung: statt "Display" und dann mit Sendkeys absenden, direkt absenden. Die Sendkeys Kommandos sind dann nicht mehr nötig.
Mail.send
'Application.SendKeys "{TAB}"
'Application.SendKeys "{TAB}"
'Application.SendKeys ("^v")
'Application.SendKeys "%s", True

Ich meld mich aber nochmal mit einer noch besseren Lösung.
Grüße,
Klaus M.vdT.

AW: VBA Mail ohne Nachfrage senden
16.05.2013 08:59:47
Klaus
Hi Gisela,
probier es mal so. Die unnötigen SELECT, ACTIVATE und SENDKEYS habe ich aus dem Code entfernt.
Statt mit "copy; STRG+V" füge ich die betreffenden Zellen direkt in den HTML-Body ein.
Was dieser Teil deines Codes:
Range("M14").FormulaR1C1 = "0"
Range("M14").Select
Application.Wait Now + TimeValue("00:00:01")
If InStr(ActiveCell.Value, "0") > 0 Then

bewirken soll ist mir absolut befremdlich. Du schreibst "0" in eine Zelle, und wenn es eine Sekunde später NICHT 0 ist, dann ...? Ich kann nur raten, dass hier ein anderes Ereignissmakro mitspielt, welches du uns vorenthalten hast. Ich hab den Teil umgeschrieben, um SELECT zu vermeiden. Statt alles in eine große IF-Schleife zu packen, lasse ich den Test eine boolean-Variable ändern (und dann wird die Mail gesendet oder eben nicht). Dient der Übersichtlichkeit, da ich so auf allzuweit geschweifte IF-Blöcke verzichten konnte.
Hier der ganze Code zum testen:
Option Explicit
'Module to send Excel-Sheet directly with outlook
'April 2013 by Klaus M.vdT.
'original Code by mumpel / www.herber.de / 11.04.2013 11:23:25
'https://www.herber.de/forum/messages/1308295.html
'MODIFIED Mai 2013 for Gisela (removed "attached file" code)
Sub PrepareAndSend()
Dim olApp         As Object
Dim olOldBody     As String
Dim sText As String
Dim sTo As String
Dim sCC As String
Dim sSubject As String
Dim i As Integer
Dim bSendForReal As Boolean
bSendForReal = False
sTo = "gisela@xxx.de"
sCC = ""
sSubject = "Tagesanwesenheit Viernheim " & Format(Now, "dd.mm.yyyy hh:mm")
With Sheets("tagesmit").Range("M14")
.FormulaR1C1 = "0"
Application.Wait Now + TimeValue("00:00:01")
If InStr(.Value, "0") > 0 Then
.Replace What:="0", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:= _
False
bSendForReal = True
End If
sText = Chr(13) & "Hallo, ?" & Chr(13) & _
"o.a. die Tagesübersicht" & Chr(13) & "Liebe Grüße" & Chr(13) & "Gisela" & Chr(13) & _
"Dieses Mail wurde automatisch versandt" & Chr(13)
For i = 0 To 4
sText = sText & .Offset(0, -i).Value & Chr(13)
Next i
End With
If bSendForReal Then
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.GetInspector.Send
olOldBody = .htmlBody
.To = sTo
.cc = sCC
.Subject = sSubject
.htmlBody = sText & olOldBody
End With
End If
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: VBA Mail ohne Nachfrage senden
16.05.2013 10:24:20
gisela
Hallo Klaus,
vielen Dank für deine Hilfe.
Ich habe deinen Vorschlag ausprobiert. Hier kommt eine Fehlermeldung:Objekt unterstützt Eigenschaft oder Methode nicht
.GetInspector.Send
olOldBody = .htmlBody
.To = sTo
.cc = sCC
.Subject = sSubject
.htmlBody = sText & olOldBody
End With
End If
End Sub Dem Makro ist in der AM nur senden um XX Uhrzeit vorgeschaltet.Der Inhalt wurde bisher auch immer in der zu verwendenden Mail richtig angezeigt. Leider habe ich nur begrenzte Kenntnisse mit dem Recorder.
Hier der Inhalt der Arbeitsmappe:
Private Sub Workbook_Open()
Application.OnTime TimeValue("14:00:00"), "Email"
End Sub
Hast du vielleciht noch einen Vorschlag?
Liebe Grüße
gisela

Anzeige
AW: VBA Mail ohne Nachfrage senden
16.05.2013 10:36:09
mumpel
Hallo!
.GetInspector.Send gibt es nicht.
In Outlook 2000-2003 ist die Nachfrage normal. Tipps gab es schon zuhauf. Email erst anzeigen, dann mit SendKeys senden. Oder auf eine neue Officeversion umsteigen. In den aktuellen Versionen ist es vom Status des Antivirenprogramms abhängig, ob die Email ohne Nachfrage gesendet wird oder nicht.
Gruß, René

AW: VBA Mail ohne Nachfrage senden
16.05.2013 10:40:31
Klaus
.GetInspector.Send gibt es nicht.
oops! Sorry Gisela!
Dann doch mit Sendkeys, wie Mumpel schrieb:
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.GetInspector.Display
olOldBody = .htmlBody
.To = sTo
.cc = sCC
.Subject = sSubject
.htmlBody = sText & olOldBody
End With
Application.SendKeys "%s", True
Grüße,
Klaus M.vdT.

Anzeige
AW: VBA Mail ohne Nachfrage senden
16.05.2013 12:31:30
gisela
Hallo,
vielen Dank euch beiden. Senden funktioniert.
Der Text wird komplett hintereinander geschrieben. Ich versuche mit & vbLf & vbLf einen Zeilenumbruch einzufügen. Das funktioniert leider noch nicht. Was mache ich falsch?
Liebe Grüße
gisela

AW: VBA Mail ohne Nachfrage senden
16.05.2013 12:32:07
gisela
Hallo,
vielen Dank euch beiden. Senden funktioniert.
Der Text wird komplett hintereinander geschrieben. Ich versuche mit & vbLf & vbLf einen Zeilenumbruch einzufügen. Das funktioniert leider noch nicht. Was mache ich falsch?
Liebe Grüße
gisela

AW: VBA Mail ohne Nachfrage senden
16.05.2013 12:38:18
Klaus
Hallo Gisela,
stimmt - es ist in meinem Makro HTML-Text. Das geht so:
sText = "br Hallo, ? br "& _
"o.a. die Tagesübersicht br "Liebe Grüße br  "Gisela br "& _
"Dieses Mail wurde automatisch versandt br"
For i = 0 To 4
sText = sText & .Offset(0, -i).Value & "br "
Next i

Aber statt br schreibst du jedesmal
"kleinerZeichen" br "größerzeichen"
ohne Leerzeichen
(wird hier im Forum schlecht angezeig)
Grüße,
Klaus M.vdT.

Anzeige
AW: VBA Mail ohne Nachfrage senden
16.05.2013 13:03:53
gisela
Hallo,
vielen Dank für deine Änderung.
Erhalte eine Syntaxfehlermeldung
So siehts aus:
sText = "
Hallo, ?
"& _
"o.a. die Tagesübersicht
"Liebe Grüße
"Gisela
"& _
"Dieses Mail wurde automatisch versandt
"
For i = 0 To 4
sText = sText & .Offset(0, -i).Value & "
"
Next i
Was habe ich jetzt falsch gemacht?
Liebe Grüße
gisela

AW: VBA Mail ohne Nachfrage senden
16.05.2013 13:11:46
Klaus
Hallo Gisela,
wie gesagt, dass lässt sich hier im Forum kaum feststellen. Aber hier geht es nur noch um Stringverkettung, das solltest du doch hinbekommen? Der Fehler ist, die " sind falsch gesetzt bzw zuviel.
So soll es:
https://www.herber.de/bbs/user/85359.txt
Grüße,
Klaus M.vdT.

Anzeige
Super - herzlichen Dank, funktioniert o.T
16.05.2013 13:33:04
gisela
o.T

Danke für die Rückmeldung! owT.
16.05.2013 13:46:49
Klaus
.

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige