Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1660to1664
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

MsgBox

MsgBox
13.12.2018 09:37:18
Erik
Hallo Excel Profis!
Ich habe diesen Code:
Sub EMailSenden()
Dim objOL As Object
Dim objMail As Object
Dim Bezeichnung As String
Dim EMailan As String
Dim strName As String
Dim intLZ As Integer
Dim i As Integer
Dim Info As String
Set objOL = CreateObject("Outlook.Application")
With Sheets("Kundenteile")
intLZ = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To intLZ
If .Cells(i, 14).Value = "a" Then
Set objMail = objOL.CreateItem(0)
EMailan = .Range("AB" & i).Value
With objMail
.To = EMailan
.Subject = "Terminvereinbarung -   "
.Body = Range("AD" & i) & " " & Range("AC" & i) _
& vbCrLf & "" _
& vbCrLf & "Ihre bestellten Ersatzteile sind bei uns eingetroffen." _
.Display
End With
.Cells(i, 10).Value = Date ' oder auch Now für Datum + Uhrzeit"
Info = "*KD Info per eMail*"
Cells(i, 11) = Cells(i, 11) & " " & Info
.Cells(i, 14).ClearContents
End If
Next i
End With
MsgBox ("eMails wurde erfolgreich versendet!")
End Sub
Dieser funktioniert bis auf eine Sache super.
Ich bräuchte eine Meldung, wenn keine E-Mail versendet wird.
Zur Zeit kommt immer: eMails wurde erfolgreich versendet!
Auch wenn keine gesendet wird.
Gruß
Erik

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox
13.12.2018 09:48:12
UweD
Hallo
so z.B.
Modul1
Option Explicit 
 
 
 
Sub EMailSenden() 
     
    Dim objOL As Object 
    Dim objMail As Object 
    Dim Bezeichnung As String 
    Dim EMailan As String 
    Dim strName As String 
    Dim intLZ As Integer 
    Dim i As Integer 
    Dim Info As String 
    Dim Gesendet As Integer 
    Set objOL = CreateObject("Outlook.Application") 
    With Sheets("Kundenteile") 
    intLZ = .Cells(Rows.Count, 1).End(xlUp).Row 
        For i = 1 To intLZ 
            If .Cells(i, 14).Value = "a" Then 
                Gesendet = Gesendet + 1 
                Set objMail = objOL.CreateItem(0) 
                EMailan = .Range("AB" & i).Value 
                With objMail 
                    .To = EMailan 
                  .Subject = "Terminvereinbarung -   " 
                  .Body = Range("AD" & i) & " " & Range("AC" & i) _
                  & vbCrLf & "" _
                  & vbCrLf & "Ihre bestellten Ersatzteile sind bei uns eingetroffen." _
 
                  .Display 
                 
                End With 
                .Cells(i, 10).Value = Date ' oder auch Now für Datum + Uhrzeit" 
                 
                Info = "*KD Info per eMail*" 
                Cells(i, 11) = Cells(i, 11) & " " & Info 
                .Cells(i, 14).ClearContents 
            End If 
        Next i 
    End With 
     
    If Gesendet > 0 Then MsgBox ("eMails wurde erfolgreich versendet!") 
     
End Sub 
 

LG UweD
Anzeige
AW: MsgBox
13.12.2018 09:51:41
Daniel
Hi
über die Variable Info kannst du feststellen, ob Mails versendet wurden oder nicht:
If Info = "" Then
Msgbox "keine Mails versendet"
else
MsgBox ("eMails wurde erfolgreich versendet!")
end if
wenn du schon eine Meldung ausgibst, dann würde ich auch ausgeben, wieviele Mails versendet wurden.
Dies kannst du recht einfach ermitteln, in dem du prüfst wie oft in Spalte N der Wert "a" steht, denn darüber löst du die Mail aus.
Die Prüfung kannst du auch gleich an den Anfang stellen:
 With Sheets("Kundenteile")
if Worksheetfunction.CountIf(.Columns(14), "a") = 0 Then
Msgbox "akutell keine Mails zu versenden
else
intLZ = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To intLZ
If .Cells(i, 14).Value = "a" Then
end if
Next
Msgbox Worksheetfunction.CountIf(.Columns(14), "a") & " Mails versendet"
end if
end with
eine andere Möglichkeit wäre, dass du einen Zähler beim versenden einer Mail mit laufen lässt:

Dim Zähler as Long
With Sheets("Kundenteile")
intLZ = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To intLZ
If .Cells(i, 14).Value = "a" Then
Zähler = Zähler + 1
End If
Next i
End With
if Zähler = 0 then
Msgbox "keine Mails versendet"
else
Msgbox Zähler & " Mails erfolgreich versendet"
end if

Gruß Daniel
Anzeige
AW: MsgBox
13.12.2018 10:35:49
Erik
Hallo Uwe, hallo Daniel,
vielen, lieben Dank für eure Hilfe.
Ich finde es echt Klasse, das man hier immer Hilfe bekommt.
Dem ganzen Forum ein frohes Weihnachtsfest und ein gesundes neues Jahr.
Gruß
Erik
AW: MsgBox
13.12.2018 10:48:16
Erik
Hallo,
ich habe noch etwas vergessen.
Ist das gleiche auch als SMS zu realisieren?
Nach Möglichkeit kostenlos?
Suche da schon länger danach, bin aber nicht fündig geworden.
Gruß
Erik
AW: MsgBox
13.12.2018 11:04:30
UweD
Hallo nochmal
es gibt "email to SMS Dienste" (ggf auch kostenlose / mal googeln)
Dann könntest du die Mail z.B. so wegschicken +491234000123445@derSMSDienstBeispiel.com
LG UweD
Anzeige
AW: MsgBox
13.12.2018 11:24:02
Erik
Hallo Uwe,
vielen Dank für den Tipp!
Das schaue ich mir mal an.
Habe gerade beim versenden der 1ten Mail ein Problem festgestellt.
In meiner Tabelle sind mehrere Ersatzteileinträge für ein und denselben Kunden.
Wenn ich diese markiere, bekommt der gleiche Kunde so viele Mails wie Teile angewählt sind.
Kann ich noch vor dem versenden eine Überprüfung machen das doppelte Emails nur 1x versendet werden?
LG
Erik
AW: MsgBox
13.12.2018 11:46:11
Bernd
Servus Erik,
wie meinst du das?
Wenn ich diese markiere, bekommt der gleiche Kunde so viele Mails wie Teile angewählt sind.
Kann ich noch vor dem versenden eine Überprüfung machen das doppelte Emails nur 1x versendet werden?

Meinst du, dass zuerst alle unterschiedlichen Kunden identifiziert werden sollen und dann zu diesen Kunden alle bestellten Teile in einer Email zusammengefasst werden sollen?
Zusätzlich würde ich noch in deine Schleife die Abfrage auf das Informationsdatum Spalte 10 setzen, sprich, wenn der Kunde zu einem Bauteil bereits informiert wurde dass diese Mitteilung kein zweites mal verschickt wird...
Im Idealfall lädst du mal die Blanko-Liste mit ein paar Fakedaten hoch, damit deine Helfer nicht immer alles selbst zusammenbasteln müssen :-)
Grüße, Bernd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige