Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
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

E-Mail Empfänger aus Zelle/Blatt auswählen

E-Mail Empfänger aus Zelle/Blatt auswählen
13.11.2019 11:27:02
Niko
Hallo an alle,
brauche wieder einmal eure Hilfe.
Habe Ein Arbeitsplan erstellt und möchte diesen an verschieden Kollegen senden. Da aber die Kollegen je nach Bauprojekt Variieren, kann ich keine feste Adressen zuweisen. Je nach Bauprojekt Variieren die Kollegen und deshalb möchte ich das das Makro die E-Mails der Kollegen vom Blatt, Bereich “E-Mail Empfänger“ E47:E57 entnimmt. So brauche ich (…und die anderen Benutzer) nicht dauernd das Makro zu ändern wenn ein andere Kollege hinzukommt oder das Projekt wechselt.
Bis jetzt habe ich es mit verschiedenen copy-Paste Annährungen und Hilfe aus dem net, es Geschafft das es an bestimmte Adressen senden tut (mit vorgegebenen Bereich), die aber im Makro enthalten ist.
Wer kann mir helfen, die Adressen aus dem Bereich E47:E57 automatisch im Makro übernommen werden? ...ohne etwas anderes zu ändern.
Danke im Voraus,
Niko
Anbei die Datei mit dem Makro sowie das Makro selbst.
https://www.herber.de/bbs/user/133171.xlsm
Sub Excel_Sheet_via_Outlook_JanEZL()
'ActiveWorkbook.ActiveSheet.Unprotect ("1234")
Dim GruppenName, KasseMonat As String
GruppenName = ThisWorkbook.Sheets("DPV1").Range("A3")
KasseMonat = Month(CDate(ThisWorkbook.Sheets("DPV1").Range("E4"))) & "/" & Year(CDate( _
ThisWorkbook.Sheets("DPV1").Range("E4")))
Dim MyMessage As Object, MyOutApp As Object
Dim SavePath As String
Dim AWS As String
SavePath = Environ("TEMP")
Worksheets("DPV1").Copy
With ActiveSheet
With .UsedRange
.Copy
.PasteSpecial xlPasteValues
End With
Union(.Range("CD:CR"), .Range("CS:DG"), .Range("DH:XFD")).Delete
.Range("61:1048576").Delete
End With
ActiveSheet.UsedRange.Copy
ActiveSheet.Cells().PasteSpecial xlPasteValues
Application.Workbooks(Application.Workbooks.Count).SaveAs ThisWorkbook.Path & "\" & " _
Dienstplangestaltung" & "_" & GruppenName & "_" & Format(Now, "ddmmyyyy__hhmm") & ".xlsx"
With Application.Workbooks(Workbooks.Count)
AWS = .FullName
.Close
End With
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.to = "Kol.1@test.de"
.Subject = "Dienstplangestaltung - Gruppe: " & GruppenName & " - Monat: " & KasseMonat &  _
" - " & Date & "-" & Time
.Attachments.Add AWS
.Body = "Hallo Kollege," & vbCrLf & vbCrLf & "Im Anhang dieser E-Mail befindet sich die  _
Dienstplanung unserer Baugruppe in Form einer Excel Datei." & vbCrLf & "Die Datei wird automatisch generiert, bitte beim Aufmachen der Datei alle Vormeldungen zu akzeptieren/aktivieren oder/und auf Weiter zu Drücken." & vbCrLf & vbCrLf & "Zu öffnen mit dem MS Excel Programm oder einem Excel kompatiblen Programm." & vbCrLf & vbCrLf & vbCrLf & "Vielen Dank," & vbCrLf & GruppenName & ""
.GetInspector
.Display
'.Send
Kill AWS
End With
'MyOutApp.Quit
Set MyOutApp = Nothing
Set MyMessage = Nothing
'ActiveWorkbook.ActiveSheet.Protect ("1234")
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: E-Mail Empfänger aus Zelle/Blatt auswählen
13.11.2019 11:47:35
Werner
Hallo Niko,
so:
Sub Excel_Sheet_via_Outlook_JanEZL()
Dim i As Long, strAn As String, GruppenName, KasseMonat As String
Dim MyMessage As Object, MyOutApp As Object, SavePath As String, AWS As String
GruppenName = ThisWorkbook.Sheets("DPV1").Range("A3")
KasseMonat = Month(CDate(ThisWorkbook.Sheets("DPV1").Range("E4"))) & "/" _
& Year(CDate(ThisWorkbook.Sheets("DPV1").Range("E4")))
SavePath = Environ("TEMP")
Worksheets("DPV1").Copy
With ActiveSheet
With .UsedRange
.Copy
.PasteSpecial xlPasteValues
End With
Union(.Range("CD:CR"), .Range("CS:DG"), .Range("DH:XFD")).Delete
.Range("61:1048576").Delete
End With
ActiveSheet.UsedRange.Copy
ActiveSheet.Cells().PasteSpecial xlPasteValues
Application.Workbooks(Application.Workbooks.Count).SaveAs ThisWorkbook.Path & "\" & " _
Dienstplangestaltung" _
& "_" & GruppenName & "_" & Format(Now, "ddmmyyyy__hhmm") & ".xlsx"
With Application.Workbooks(Workbooks.Count)
AWS = .FullName
.Close
End With
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With Worksheets("DPV1")
For i = 47 To .Cells(.Rows.Count, "E").End(xlUp).Row
If strAn = vbNullString Then
strAn = .Cells(i, "E")
Else
strAn = strAn & ";" & .Cells(i, "E")
End If
Next i
End With
With MyMessage
.To = strAn
.Subject = "Dienstplangestaltung - Gruppe: " & GruppenName & " - Monat: " & KasseMonat & " - _
" & Date & "-" & Time
.Attachments.Add AWS
'Hier wird eine normale Text Mail erstellt
'.body = "Das ist ein Test" & vbCrLf & "Bitte ignorieren"
'Hier wird die HTML Mail erstellt
.Body = "Hallo Kollege," & vbCrLf & vbCrLf & "Im Anhang dieser E-Mail befindet sich die  _
Dienstplanung unserer Baugruppe" _
& "in Form einer Excel Datei." & vbCrLf & "Die Datei wird automatisch generiert, bitte beim  _
Aufmachen der Datei alle" _
& "Vormeldungen zu akzeptieren/aktivieren oder/und auf Weiter zu Drücken." & vbCrLf &  _
vbCrLf _
& "Zu öffnen mit dem MS Excel Programm oder einem Excel kompatiblen Programm." & vbCrLf &  _
vbCrLf & vbCrLf _
& "Vielen Dank," & vbCrLf & GruppenName & ""
'Hier wird die Mail nochmals angezeigt
.GetInspector     ' sorgt für die Signatur
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'.Send
'Hier wird die temporäre Datei wieder gelöscht
Kill AWS
End With
'MyOutApp.Quit
Set MyOutApp = Nothing
Set MyMessage = Nothing
'ActiveWorkbook.ActiveSheet.Protect ("1234")
End Sub
Gruß Werner
Anzeige
AW: E-Mail Empfänger aus Zelle/Blatt auswählen
13.11.2019 16:59:07
Niko
Hallo Werner,
danke für deine Antwort und entschuldige mich für meine verspätete Rückmeldung.
Habe es ausprobiert aber es klemmt :-)
Genauer gesagt Stoppt es hier:
Application.Workbooks(Application.Workbooks.Count).SaveAs ThisWorkbook.Path & "\" & " _
Dienstplangestaltung" _
& "_" & GruppenName & "_" & Format(Now, "ddmmyyyy__hhmm") & ".xlsx"
Anbei die Datei mit dem von dir gesendeten Makro.
Habe es im Modul 1 eingebaut so dass man sehen kann wo es stoppt.
https://www.herber.de/bbs/user/133184.xlsm
Anzeige
AW: E-Mail Empfänger aus Zelle/Blatt auswählen
13.11.2019 18:43:04
Niko
Hallo Werner,
vielen,vielen Dank :-)
jetzt klappt es ohne probleme :-) hat mir echt viel geholfen.
Komisch das es vorher diesen code hatte…naja jetzt funktioniertes :-) Danke nochmals.
Eine Letzte frage, kann ich CC noch hinzufügen?
…wenn ich mit .To = strAn auch .cc = strAn einfüge?
Bei den E-Mail Empfängern (E47) ist als erstes die Leitung, die würde ich gerne als CC senden.
Würde es so klappen, oder brauche ich noch zusätzlichen VBA Code?
Danke...kann es nicht genug sagen :-)
Niko
Anzeige
AW: E-Mail Empfänger aus Zelle/Blatt auswählen
13.11.2019 21:31:36
Niko
Hallo Werner,
das ist....Super! :-)))
Vielen, Vielen Dank und nochmals Vielen Dank.
am Ende habe es sogar ich der "Grande" VBA Laie ein bisschen verstanden warum es so ist.
Danke auch für die Lehrstunde...wieder ein bisschen was dazu gelernt :-)
Niko
Gerne u. Danke für die Rückmeldung. o.w.T.
13.11.2019 21:39:03
Werner

140 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige