Anzeige
Archiv - Navigation
1328to1332
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

Textbox5=heute() Email senden

Textbox5=heute() Email senden
10.09.2013 16:37:53
Bernd
Hallo zusammen,
brauch mal wieder Hilfe. Bei Start meiner Kundenverwaltung (Excel-Projekt) öffnet sich als erstes UF Kundenliste. Dort in Textbox5 steht das Geb.-Datum.
Nun zu meiner Frage: in Textbox5 ist das heutige Datum, also Kd hat Geburtstag. Nun soll der Kd. eine automatisch generierte Email über Outlook bekommen. Emailadresse ist in Textbox14.
Habe schon viele Beiträge ausprobiert, komme aber nicht weiter, wer kann mir dabei helfen?
Gruß
Bernd

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox5=heute() Email senden
10.09.2013 16:45:29
selli
hallo bernd,
na wenn dein kunde sich da nicht riesig drüber freut.
automatisch generierte e-mails sind echt wahnsinnig herzlich und persönlich.
(lösungsansätze gibt es in der recherche)
gruß
selli

AW: Textbox5=heute() Email senden
10.09.2013 17:06:48
Bernd
Hallo Selli,
ich sag's ja immer "ich hab ein gutes ♥" und du hast das erkannt!!!
Gruß
Bernd
PS. Falls du helfen wolltest, keine falsche Scham, bin für alles dankbar!!!

AW: Textbox5=heute() Email senden
10.09.2013 16:48:17
Rudi
Hallo,
etwa so.
In der UF:
Private Sub TextBox5_Change()
If CDate(TextBox5) = Date Then
SendMail_Outlook _
TextBox14, _
"Geburtstagswünsche", _
"Herzlichen Glückwunsch zum Geburtstag", _
"", _
"", _
End If
End Sub

In ein Modul:
Sub SendMail_Outlook(strTo As String, strSUBJECT As String, strTEXT As String, _
strCC As String, strBCC As String, strATT As String)
Dim MyMessage As Object, MyOutApp As Object
'Outlook Object erstellen
Set MyOutApp = CreateObject("Outlook.Application")
'Outlook Nachricht erstellen
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
'Empfänger
If Len(strTo) Then
.To = strTo
End If
'Kopie
If Len(strCC) Then
.CC = strCC
End If
'Blindkopie
If Len(strCC) Then
.BCC = strBCC
End If
'Betreff
.Subject = strSUBJECT
.Attachments.Add strATT
If Len(strTEXT) Then
'Hier wird ein normaler Text erstellt
.Body = strTEXT
End If
'Hier wird eine HTML Mail erstellt
'Dies kann zu Problemen führen, wenn der Empfänger
'nur TEXT Dateien empfangen darf.
'.HTMLBody = "Das ist ein Test." & vbCrLf & "Bitte ignorieren."
'Hier wird die Mail nochmals angezeigt
'        .Display
'Hier wird die Mail gleich in den Postausgang gelegt und gesendet
.Send
End With
'Outlook schliessen
'MyOutApp.Quit
'Variablen leeren
Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub

Gruß
Rudi

Anzeige
AW: Textbox5=heute() Email senden
10.09.2013 17:03:46
Bernd
Hallo Rudi,
danke für deine schnelle Hilfe, habe deinen Code entsprechend eingefügt aber läuft nicht, hängt bei textbox14.
Hier die Mustermappe
https://www.herber.de/bbs/user/87228.xlsm
Gruß
Bernd

AW: Textbox5=heute() Email senden
10.09.2013 17:27:57
Rudi
Hallo,
1. die Mailadresse steht in Textbox13
2. die Textbox5 erst ganz am Schluss füllen, sonst ist die Mailadresse noch "".
Private Sub TextBox5_Change()
If Month(CDate(TextBox5)) = Month(Date) And Day(CDate(TextBox5)) = Day(Date) Then
SendMail_Outlook _
TextBox13, _
"Geburtstagswünsche", _
"Herzlichen Glückwunsch zum Geburtstag" _
& " wünschen von ganzem Herzen" _
& " die Firma Kiehl." _
& vbLf & vbLf _
& "PS. und viel Gesundheit oben drauf!!!", _
"", _
"", _
End If
End Sub
Private Sub ListBox1_Click()
Dim lng As Integer
If boVar = True Then Exit Sub
lng = frm_Kundenliste.ListBox1.Column(13)
With frm_Kundenliste
TextBox1.Value = Cells(lng, 1).Value
TextBox2.Value = Cells(lng, 2).Value
TextBox3.Value = Cells(lng, 3).Value
TextBox4.Value = Cells(lng, 4).Value
TextBox6.Value = Cells(lng, 6).Value
TextBox7.Value = Cells(lng, 7).Value
TextBox8.Value = Cells(lng, 8).Value
TextBox9.Value = Cells(lng, 9).Value
TextBox10.Value = Cells(lng, 10).Value
TextBox11.Value = Cells(lng, 11).Value
TextBox12.Value = Cells(lng, 12).Value
TextBox13.Value = Cells(lng, 13).Value
.cmdDatenNeu.Visible = False
.cmdÄnderung.Visible = True
.cmdlösch.Visible = True
TextBox5.Value = Cells(lng, 5).Value
End With
End Sub

Nebenbei solltest du noch dafür sorgen, dass der Kunde nicht jedesmal eine Mail bekommt, wenn du ihn aufrufst, sondern nur 1x im Jahr.
Gruß
Rudi

Anzeige
AW: Textbox5=heute() Email senden
10.09.2013 17:49:04
Bernd
Hallo Rudi,
funktioniert, wobei dein letzter Satz im Kopf rumschwirrt "1x im Jahr". Wie kann ich das sicherstellen?
Und gerade kommt eine weitere Frage auf: kann ich im Change Ereignis vor der PS Zeile eine GIF Grafik einfügen.
Gruß
Bernd

AW: Textbox5=heute() Email senden
10.09.2013 18:28:49
Bernd
Hallo Rudi,
habe wohl zu früh ok gerufen. Hängt sich auf bei ".Attachments.Add strATT" im Sub Sendmail
Gruß
Bernd

AW: Textbox5=heute() Email senden
10.09.2013 20:41:26
Rudi
Hallo,
dann kommentier es aus. Du brauchst ja kein Attachment.
Gruß
Rudi

AW: Textbox5=heute() Email senden
10.09.2013 21:23:59
Bernd
Hallo Rudi,
hab ich gemacht. Kleine Bitte, kannst du mir noch 'nen Tipp geben, wie ich in den HTMLBody der Mail zwischen den beiden letzten Zeilen Text die Grafik einfüge.
Danke schon mal im Voraus!!!
Gruß
Bernd

Anzeige
AW: Textbox5=heute() Email senden
10.09.2013 21:43:06
Rudi
Hallo,
wie ich in den HTMLBody der Mail
indem du den Text HTML-konform zusammenstellst
....
sHTML="Herzlichen Glückwunsch<br>"
sHTML=sHTML &"zum Geburtstag<br>
sHTML=sHTML &"<img src=""C:\DeinBild.jpg""><br>"
sHTML=sHTML &"letzte Zeile"
....
.HTMLBody=sHTML
....
Gruß
Rudi

AW: Textbox5=heute() Email senden
10.09.2013 21:59:45
Bernd
Hallo Rudi,
wo muss der Code hin?
Habe schon hin und her probiert mein VBA Verständnis reicht dafür noch nicht.
Gruß
Bernd

AW: Textbox5=heute() Email senden
10.09.2013 22:36:12
Rudi
Hallo,
eine Möglichkeit.
Private Sub TextBox5_Change()
  Dim strTEXT As String
  strTEXT = "Herzlichen Glückwunsch<br>"
  strTEXT = strTEXT & "zum Geburtstag<br>"
  strTEXT = strTEXT & "<img src=""C:\DeinBild.jpg""><br>"
  strTEXT = strTEXT & "letzte Zeile"
  If CDate(TextBox5) = Date Then
    SendMail_Outlook _
      TextBox14, _
      "Geburtstagswünsche", _
      strTEXT, _
      "", _
      "", _
      ""
  End If
End Sub
Sub SendMail_Outlook(strTo As String, strSUBJECT As String, strTEXT As String, _
  strCC As String, strBCC As String, strATT As String)
  
  Dim MyMessage As Object, MyOutApp As Object
  
  'Outlook Object erstellen 
  Set MyOutApp = CreateObject("Outlook.Application")
  'Outlook Nachricht erstellen 
  Set MyMessage = MyOutApp.CreateItem(0)
  With MyMessage
    'Empfänger 
    If Len(strTo) Then
      .To = strTo
    End If
    'Kopie 
    If Len(strCC) Then
      .CC = strCC
    End If
    'Blindkopie 
    If Len(strCC) Then
      .BCC = strBCC
    End If
    
    'Betreff 
    .Subject = strSUBJECT
'    .Attachments.Add strATT 
'    If Len(strTEXT) Then 
'      'Hier wird ein normaler Text erstellt 
'      .Body = strTEXT 
'    End If 
    'Hier wird eine HTML Mail erstellt 
    'Dies kann zu Problemen führen, wenn der Empfänger 
    'nur TEXT Dateien empfangen darf. 
    .HTMLBody = strTEXT
    'Hier wird die Mail nochmals angezeigt 
    '        .Display 
    'Hier wird die Mail gleich in den Postausgang gelegt und gesendet 
    .Send
  End With
  'Outlook schliessen 
  'MyOutApp.Quit 
  'Variablen leeren 
  Set MyOutApp = Nothing
  Set MyMessage = Nothing
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel


Gruß
Rudi

Anzeige
AW: Textbox5=heute() Email senden
11.09.2013 10:14:48
Bernd
Hallo Rudi,
Klappt!!! Danke dir recht♥lich für deine Bemühungen.
Gruß
Bernd

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige