Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Information an Mitgleider per eMail versenden wenn Änderung vorhanden
#1
Hallo,

ich möchte meine Excel Tabelle für unsere Mittagsbetreuung noch weiter verbessern. Sie Sepa Vorabinformationen für die Essensliste funktioniert (es muss nur noch die Sicherheitsabfrage Outlook geklärt werden)
Nun möchte ich dies auch für die neuen Mitglieder und bei Änderungen ebenfalls durch Excel realisieren.

Dafür habe ich eine Spalte hinzugefügt in welcher bei neuen Mitgliedern ein "Neu" steht oder "Änderung"

Der code soll jeweils diese Zeile prüfen und nur bei denen wo neu oder Änderung steht einen Text aus spalten der jeweiligen Zeile zusammensetzen der dann versendet wird..

Wie kann ich den bestehenden Code zu umstellen das Spalte 58 einmal nach "Neu" oder "Änderung" geprüft wird?

Code:
Sub eMailEltern()
Dim olApp As Object
Dim z As Long
Dim Empfänger As String
Dim Mandatsnummer As String
Dim Beitrag As String
Dim Monat As String
Dim Datum As String
Dim Kind As String
Dim lngLetzteZelle As Long

Set olApp = CreateObject("Outlook.Application")

With ActiveSheet

For z = 5 To .Cells(.Rows.Count, 41).End(xlUp).Row ' normal bis 70 Schleifendurchlauf = 66 x

   If .Cells(z, 41) = Empty Then Exit For


     'Empfänger festelegen
     Empfänger = ActiveSheet.Cells(z, 41)
             
     'Mandatsnummer erstellen
     Mandatsnummer = ActiveSheet.Cells(z, 42)
     
     'Beitrag
     Beitrag = ActiveSheet.Cells(z, 43)
     
     'Kind
     Kind = ActiveSheet.Cells(z, 44)
   
     'Monat
     Datum = ActiveSheet.Cells(1, 4)
     Monat = Format(Datum, "mmmm yyyy")

With olApp.createitem(0)
Rem Empfänger
         .to = Empfänger
         
Rem Betreff
         .Subject = "Ankündigung Abbuchung Differenzbuchung - Mittagsessen für " & Monat & " in Höhe von " & Beitrag & " € - Kind " & Kind

Rem Textkörper (Body) im HTML-Format. (1 = Nur-Text, 2 = HTML, 3 = Rich-Text)
         .BodyFormat = 2
Rem "<br>" = Zeilenumbruch-Anweisung (nur bei HTML)
         .HTMLBody = "Sehr geehrte Eltern,<br><br> " & _
                         "wir werden von Ihrem Konto den Differenzbeitrag für das Mittagessen von " & Kind & " für den Monat <b>" & Monat & "</b> in Höhe von <b>" & Beitrag & " Euro</b> abbuchen.<br><br>" & _
                         "Die Abbuchung findet in den kommenden 5 Tagen über die Mandatsreferenznummer<b> " & Mandatsnummer & "</b> statt.<br><br>" & _
                         "Mit freundlichen Grüßen<br><br>" & _
                         "Mittagsbetreuung Penzing - Kassierer - " & .HTMLBody
         
Rem Name des Sendekontos in Anführungszeichen
     Set .SendUsingAccount = .Session.Accounts.Item("Mittagsbetreuung-Penzing@online.de")
     
Rem  Mail sofort senden
'          .Send
.Display

End With

   Next z

End With

End Sub
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Antworten Top
#2
Hallo Daniel,

erst mal nur schnell ein codeschnipsel.

Code:
If .Cells(xxx, 58) = "neu" or .Cells(xxx, 58) = "Änderung" Then ...
   NeuerText = .Cells(irgendwo,irgendwo) & .Cells(nochirgendwo,nochirgendwo)
End IF

Der Code müsste dann irgendwo in die For-Schleife und NeuerText dann bestimmt beim Body dazu?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Daniel Albert
Antworten Top
#3
Ok, ich habe noch nie mit mehreren Schleifen in einem Makro gearbeitet und bekomme jetzt folgende Fehlermeldung:

Next ohne For

Code:
Sub Neukunden_Änderung()
Dim olApp As Object
Dim z As Long
Dim Empfänger As String
Dim Mandatsnummer As String
Dim Beitrag As String
Dim Datum As String
Dim Kind As String
Dim lngLetzteZelle As Long

Set olApp = CreateObject("Outlook.Application")

With Tabelle1

For z = 5 To 70 ' normal bis 70 Schleifendurchlauf = 66 x

   If .Cells(z, 58) = "Neu" Then


     'Empfänger festelegen
     Empfänger = Tabelle1.Cells(z, 43)
             
     'Mandatsnummer erstellen
     Mandatsnummer = Tabelle1.Cells(z, 57)
     
     'Beitrag
     Beitrag = Tabelle1.Cells(z, 5)
     
     'Kind
     Kind = Tabelle1.Cells(z, 3)
   
     'Datum
     Datum = Tabelle1.Cells(1, 4)

With olApp.createitem(0)
Rem Empfänger
         .To = Empfänger
         
Rem Betreff
         .Subject = "Ankündigung Abbuchung Differenzbuchung - Mittagsessen für " & Monat & " in Höhe von " & Beitrag & " € - Kind " & Kind

Rem Textkörper (Body) im HTML-Format. (1 = Nur-Text, 2 = HTML, 3 = Rich-Text)
         .BodyFormat = 2
Rem "<br>" = Zeilenumbruch-Anweisung (nur bei HTML)
         .HTMLBody = "Sehr geehrte Eltern,<br><br> " & _
                         "wir werden von Ihrem Konto den Differenzbeitrag für das Mittagessen von " & Kind & " für den Monat <b>" & Monat & "</b> in Höhe von <b>" & Beitrag & " Euro</b> abbuchen.<br><br>" & _
                         "Die Abbuchung findet in den kommenden 5 Tagen über die Mandatsreferenznummer<b> " & Mandatsnummer & "</b> statt.<br><br>" & _
                         "Mit freundlichen Grüßen<br><br>" & _
                         "Mittagsbetreuung Penzing - Kassierer - " & .HTMLBody
         
Rem Name des Sendekontos in Anführungszeichen
     Set .SendUsingAccount = .Session.Accounts.Item("Mittagsbetreuung-Penzing@online.de")
     
Rem  Mail sofort senden
'          .Send
.Display

End With

   Next z

End If

End Sub
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Antworten Top
#4
Hallo Daniel,

ohne Prüfung auf eventuelle andere Fehler,

das End If muss vor der Zeile Next z stehen.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Daniel Albert
Antworten Top
#5
und ein End With musste ich integrieren
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste