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.

E-Mail automatisch aus Excel versenden
#11
Hi,

dann teste das mal so:

Modul Modul1
Sub EmailVersenden() 
Dim z As Long
Dim zm As Long
Dim Empfänger As String
Dim Titel As String
Dim Nachricht As String
Dim Hyperlink As String

With Tabelle1
    'Ermittlung der letzten Zeile in Spalte A
    zm = .Cells(Rows.Count, 1).End(xlUp).Row
    
    'Aufsetzen der Schleife
    For z = 2 To zm
        'Wenn das Datum in Spalte A <= Heute dann
        If .Cells(z, 1).Value <= Date Then

            'Empfänger festelegen
            Empfänger = Tabelle1.Cells(z, 4)
                   
            'Betreff zusammenbasteln
            Titel = Tabelle1.Cells(z, 2).Value & " " & Tabelle1.Cells(z, 3).Value
            'Nachrichtentext erstellen
            Nachricht = "Bitte die im Betreff genannte Nummer prüfen!"
          
           'Hyperlink zusammensetzen

            Hyperlink = "mailto:" & Empfänger & "&"
            Hyperlink = Hyperlink & "subject=" & Titel & "&"
            Hyperlink = Hyperlink & "body=" & Nachricht
        
            ActiveWorkbook.FollowHyperlink Hyperlink
            Application.Wait (Now + TimeValue("0:00:02"))
            Application.SendKeys ("%s")
            
        End If
    Next z

End With
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 12 - mit VBAHTML 12.6.0


Ich bin davon ausgegeangen, dass in Spalte D zukünftig Mail-Adressen stehen.
Das" Sendkeys" kann je nach Arbeitsplatzumgebung Probleme machen. Bei mir hier im Büro klappts so nicht.
Zuhause ja. Das konnte ich schon bei anderen Gelegenheiten testen.

Für die Geschichte mit "einer Mail pro Mailempfänger" gibt es auch eine Lösung. Sollen dann alle Nummern im Betreff auftauchen?
Teste erst mal so und gib ein Feedback.

Gruß
Ich
Antworten Top
#12
Hi IchBinIch,

vielen Danke für deine Arbeit! Hat funktioniert:)

Ich hab jetzt wie du bereits gesagt hast 5 Mails bekommen aufgrund des selben Datums.
Wäre das möglich nur eine Mail zu bekommen, wenn mehrere Zeilen das selbe Datum haben?

Ich habe gesehen, die Nachricht ist jetzt vorprogrammiert....könnte man das auch so einstellen, dass die Nachricht die Nummern erwähnt die zu kontrollieren sind?
Sry, hab ich davor nicht bedacht! Weil wenn ich jetzt bspw. 15 Nummern oben im Betreff habe ist das ziemlich unübersichtlich.

Was deine Vermutung angeht...die E-Mail soll immer an die selbe Person geschickt werden. Der Name (Spalte D) in der Tabelle ist für die E-Mail also nicht so wichtig. Hab dafür einfach deine Codezeile aus dem vorherigen Beitrag eingefügt und die jetzige gelöscht...hat super geklappt. Danke!

Nur zum Verständnis: Muss explizit die diese Datei geöffnet sein aus der die Daten in der E-Mail verwendet werden oder reicht es wenn Excel allg. geöffnet ist, z.B. eine andere Datei?
Hab im Internet etwas mit Verknüpfung dazu gelesen, bin mir aber nicht sicher ob das damit gemeint ist..."Über Verknüpfungen können wir auf Daten innerhalb eines Blattes, einer Datei oder auf Daten anderer Dateien zugreifen, diese müssen dafür nicht geöffnet sein."?

Beste Grüße
Antworten Top
#13
Hi,

also um den Einzelversand zu unterbinden, verwende den folgenden Code:

Modul Modul1
Sub EmailVersenden() 
Dim z As Long
Dim zm As Long
Dim Empfänger As String
Dim Titel As String
Dim Nachricht As String
Dim Hyperlink As String
Dim pn As String

With Tabelle1
    'Ermittlung der letzten Zeile in Spalte A
    zm = .Cells(Rows.Count, 1).End(xlUp).Row
     
    'Aufsetzen der Schleife
    For z = 2 To zm
        'Wenn das Datum in Spalte A <= Heute dann
        If .Cells(z, 1).Value <= Date Then
            pn = pn & .Cells(z, 3).Value & ", "
        End If
    Next z
End With
     'Empfänger festelegen. !!!BITTE ANPASSEN!!!
     Empfänger = "WhoEver@WhatEver.com"
             
     'Betreff festlegen
     Titel = "ERINNERUNG! Kontrolle von Nummer(n) fällig!"
     'Nachrichtentext erstellen
     Nachricht = "Bitte die nachfolgend genannte Nummer prüfen!"
     
    'Hyperlink zusammensetzen
     Hyperlink = "mailto:" & Empfänger & "&"
     Hyperlink = Hyperlink & "subject=" & Titel & "&"
     Hyperlink = Hyperlink & "body=" & Nachricht & "%0A" & "%0A" & pn

     ActiveWorkbook.FollowHyperlink Hyperlink
     Application.Wait (Now + TimeValue("0:00:02"))
     Application.SendKeys ("%s")


End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 12 - mit VBAHTML 12.6.0


Spaltentechnisch wird jetzt eigentlich nur noch der Inhalt von Spalte A und C genutzt.

Hinsichtlich Deiner Frage ob man auch verknüpfen könnte, bin ich momentan überfragt.
Der Code gehört in die Tabelle, die Du bereit gestellt hast.

Gruß
Ich
Antworten Top
#14
Hey,

ich hab mich wohl erneut misslich ausgedruckt, sry:33: ....ich meinte damit, dass in der Nachricht die Nummern stehen sollen, die zu kontrollieren sind anstatt im Betreff also z.B. -1233, -30984, -572344, -347 etc.?

Ich hab den Code jetzt mal für die wirkliche Datei benutzt und dort wird mir jetzt gesagt: "Laufzeitfehler '424': Objekt erforderlich". Weißt du woran das liegen könnte?
Ich muss dazu sagen, dass bei der wirklichen Datei anstatt Nummern ein anderer Begriff dort steht. Ist das relevant?...dacht der Code bezieht sich auf die Spalte im Allgemeinen, nicht auf das was in der 1. Zeile dort steht.
Da sind wir auch gleich beim nächsten Thema, ich musste jetzt in der Tabelle die 1. & 2. Zeile verbinden, die 3. ist praktisch leer und ab der 4. geht's dann los mit Datum, Betreff und Zahlen. Denke mal das muss im Code noch berücksichtigt werden oder? Tut mir echt leid, dass ich jetzt erst damit ankomme aber musste die Tabelle gerade umstrukturieren.

Beste Grüße
Antworten Top
#15
(19.09.2016, 14:16)Garfield123 schrieb: Hey,

ich hab mich wohl erneut misslich ausgedruckt, sry:33: ....ich meinte damit, dass in der Nachricht die Nummern stehen sollen, die zu kontrollieren sind anstatt im Betreff also z.B. -1233, -30984, -572344, -347 etc.?

Ich hab den Code jetzt mal für die wirkliche Datei benutzt und dort wird mir jetzt gesagt: "Laufzeitfehler '424': Objekt erforderlich". Weißt du woran das liegen könnte?
Ich muss dazu sagen, dass bei der wirklichen Datei anstatt Nummern ein anderer Begriff dort steht. Ist das relevant?...dacht der Code bezieht sich auf die Spalte im Allgemeinen, nicht auf das was in der 1. Zeile dort steht.
Da sind wir auch gleich beim nächsten Thema, ich musste jetzt in der Tabelle die 1. & 2. Zeile verbinden, die 3. ist praktisch leer und ab der 4. geht's dann los mit Datum, Betreff und Zahlen. Denke mal das muss im Code noch berücksichtigt werden oder? Tut mir echt leid, dass ich jetzt erst damit ankomme aber musste die Tabelle gerade umstrukturieren.

Beste Grüße

Hi,

Du hast Dich nicht missverständlich ausgedrückt. Mit meinem letzten Code, packt er alle Nummern in eine Variable und gibt diese dann im Nachrichtentext aus.
Es ist auch egal was da drin steht.  Die Spalte mit dem Betreff brauchst Du nicht mehr. Sicher das Du den richtigen Code eingefügt hast? Zum Verschieben der
Bezüge:
Der nachfolgende Code ist jetzt wie folgt angepasst. Ermittle die letzte Zeile in Spalte 4 = Datumsspalte. Wenn das Datum < heute ist,
nimm den Wert aus der gleichen Zeile in Spalte 6 und schreibe diesen in die Variable pn. Dann gehe zur nächsten Zeile. Selbe Prüfung wenn Datum < heute dann, etc.


Sub EmailVersenden()
Dim z As Long
Dim zm As Long
Dim Empfänger As String
Dim Titel As String
Dim Nachricht As String
Dim Hyperlink As String
Dim pn As String

With Tabelle1
    'Ermittlung der letzten Zeile in Spalte A
    zm = .Cells(Rows.Count, 4).End(xlUp).Row
     
    'Aufsetzen der Schleife
    For z = 2 To zm
        'Wenn das Datum in Spalte A <= Heute dann
        If .Cells(z, 4).Value <= Date Then
            pn = pn & .Cells(z, 6).Value & ", "
        End If
    Next z
End With
     'Empfänger festelegen. !!!BITTE ANPASSEN!!!
     Empfänger = "WhoEver@WhatEver.com"
             
     'Betreff festlegen
     Titel = "ERINNERUNG! Kontrolle von Nummer(n) fällig!"
     'Nachrichtentext erstellen
     Nachricht = "Bitte die nachfolgend genannte Nummer prüfen!"
     
    'Hyperlink zusammensetzen
     Hyperlink = "mailto:" & Empfänger & "&"
     Hyperlink = Hyperlink & "subject=" & Titel & "&"
     Hyperlink = Hyperlink & "body=" & Nachricht & "%0A" & "%0A" & pn

     ActiveWorkbook.FollowHyperlink Hyperlink
     Application.Wait (Now + TimeValue("0:00:02"))
     Application.SendKeys ("%s")


End Sub
 

Gruß
Ich
Antworten Top
#16
Okay jetzt hast du mich verwirrt mit Spalte 4 und 6. Wie kommst du auf diese?
Bei mir sieht es folgender maßen aus... 1. Spalte = Datum, 2. Spalte. =Betreff, 3. Spalte = die variierenden Nummern, 4. Spalte= ne andere Nr. aber unwichtig, 5. Spalte auch unwichtig usw.
Wichtig sind also doch nur 1. - 3. Spalte wie in meinem Bsp.

Beste Grüße
Antworten Top
#17
Hi,

schaue ich mir nachher nochmal in Ruhe an. ich bin schon wieder auf dem Sprung.
Es gab da wohl ein paar Missverständnisse :32:

Bis später
Ich
Antworten Top
#18
Hi,

wenn ich Dich richtig verstanden habe, dann sieht Deine Tabelle in etwa so aus.

Tabelle1

ABCDE
1DatumBetreffNummerNameAnmerkung
2
3AnnaEine Anmerkung
411.12.2010Erinnerung! Kontrolle fällig von123Peter
511.12.2010Erinnerung! Kontrolle fällig von1234Thorsten
601.07.2011Erinnerung! Kontrolle fällig von12345Anna
701.07.2011Erinnerung! Kontrolle fällig von123456Jana

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8


Mit diesem Code

Sub EmailVersenden()
Dim z As Long
Dim zm As Long
Dim Empfänger As String
Dim Titel As String
Dim Nachricht As String
Dim Hyperlink As String
Dim pn As String

With Tabelle1
    'Ermittlung der letzten Zeile in Spalte A
    zm = .Cells(Rows.Count, 1).End(xlUp).Row
     
    'Aufsetzen der Schleife
    For z = 4 To zm
        'Wenn das Datum in Spalte A <= Heute dann
        If .Cells(z, 1).Value <= Date Then
            pn = pn & .Cells(z, 3).Value & ", "
        End If
    Next z
End With
     'Empfänger festelegen. !!!BITTE ANPASSEN!!!
     Empfänger = "WhoEver@WhatEver.com"
             
     'Betreff festlegen
     Titel = "ERINNERUNG! Kontrolle von Nummer(n) fällig!"
     'Nachrichtentext erstellen
     Nachricht = "Bitte die nachfolgend genannte Nummer prüfen!"
     
    'Hyperlink zusammensetzen
     Hyperlink = "mailto:" & Empfänger & "&"
     Hyperlink = Hyperlink & "subject=" & Titel & "&"
     Hyperlink = Hyperlink & "body=" & Nachricht & "%0A" & "%0A" & pn

     ActiveWorkbook.FollowHyperlink Hyperlink
     Application.Wait (Now + TimeValue("0:00:02"))
     Application.SendKeys ("%s")

End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


erhalte ich das im Ergebnis

   

Gruß
Ich

Folgende Zeile musst Du entsprechend anpassen:

Code:
Empfänger = "WhoEver@WhatEver.com"

Der Betreff ist nun statisch und muss nicht in Deiner Tabelle geführt werden.

Code:
Titel = "ERINNERUNG! Kontrolle von Nummer(n) fällig!"
Antworten Top
#19
Thumbs Down 
Moin!

vielen Danke erstmal für deine Arbeit, ist echt super das Du das für mich machst!:)

Ich habe deinen Code jetzt ausprobiert bei einer Beispieltabelle...da funktioniert es einwandfrei  Thumbsupsmileyanim . Da du geschrieben hast das der Betreff statisch ist konnte ich jetzt die 2. Spalte auch löschen, habe den Bezug im Code dann auf die 2. Spalte gelegt, ging problemlos.
Bei der richtigen Tabelle leider noch nicht Undecided  .... hier wird mir folgendes wieder Angezeigt "Laufzeitfehler '424': Objekt erforderlich" und folgende Zeile in deinem Code wird gelb markiert ->  zm = .Cells(Rows.Count, 1).End(xlUp).Row

Der einzige Unterschied zur Beispieltabelle ist:

- dass zwischendurch (Zeile 28-30) in diesen Spalten frei ist
- dass anstatt "Nummer" ein anderes Wort dort steht mit diesen Zeichen zsm. ".-#" 
- in 3 Zeilen der 2. Spalte wo jetzt die Nummern stehen auch Buchstaben mit vorkommen (z.B. EG: 4215)
- und in Spalte 3 stehen jetzt durch den Wegfall der Spalte "Betreff" auch Zahlen die aber uninteressant für die E-Mail sind

 Hat das vllt. irgendwelche Auswirkungen auf den Code? Sry falls das jetzt ausschlaggebend für deinen Code sein sollte!

Beste Grüße
Antworten Top
#20
Okay das mit den Buchstaben in der 2. Spalten scheint nicht das Problem zu sein, habs nochmal ausprobiert, klapp!

Was ich noch vergessen hatte...in der richtigen Excel Datei gibt es mehrere Blätter unten in der Leiste welche nicht die Anordnung haben wie auf dem Blatt was für mich wichtig ist.

Gruß
Garfield
Antworten Top


Gehe zu:


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