Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1852to1856
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
Fenster zum Auswählen E-Mail-Empfänger
29.10.2021 08:51:20
RaMa
Hallo zusammen,
zu meinen Kenntnissen: ich kopiere dank diesem Forum viele Dinge & passe es an & fluche & probiere weiter & irgendwann funktioniert es :)
Ich habe ein Makro zum Erstellen einer automatische E-Mail, in der mehrere Passagen automatisch angepasst werden.
Ich habe schon im Archiv gesucht, aber ich habe keine passende Lösung gefunden oder mangels Wissen nicht die richtigen Schlagwörter genutzt.
Ist es Möglich, dass ich neben den 2 vorhanden "starren" E-Mail-Empfänger weitere variable Empfänger per Auswahlliste hinzufügen kann.
Es soll also mit dem Klick auf dem CommandButton eine Auswahlbox erscheinen, in der ca. 10 verschiedenen Personen samt E-Mail-Adresse aufgeführt sind und ich 1 oder mehrere Personen anklicken kann und diese dann den vorhandenen 2 Empfängern hinzugefügt werden.
Die Namen möchte ich auf meinen extra Reiter "Datenblatt" in freie Zellen aufführen.
Ist das möglich?
Vielen Dank für eure Hilfe.
Mein momentaner Code lautet:

Private Sub CommandButton1_Click()
'** - - - Heutiges Datum, filtern und sortieren - - -
ActiveSheet.Unprotect
Range("E3").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
ActiveSheet.Range("$A$7:$H$40").AutoFilter Field:=8, Criteria1:=""
ActiveWorkbook.Worksheets("Mengenänderungen_Info-Mail").AutoFilter.Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Mengenänderungen_Info-Mail").AutoFilter.Sort. _
SortFields.Add Key:=Range("H7:H40"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Änderungen_Info-Mail").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'** - - - Automatische E-Mail - - -
Dim xOutApp As Object
Dim xOutMail As Object
Dim strBlatt As String
Dim strDatei As String
Dim strPfad As String
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
'** Pfad und Dateiname benennen
strDatei = "C:\Temp\Änderungen vom " & Range("E3") & ".pdf"
'** aktive Tabelle als PDF speichern
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strDatei, Quality:=xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
With xOutMail
.GetInspector
.To = "asdf@mail.de" & ";" & "qwert@mail.de"
.CC = ""
.BCC = ""
.Subject = "Änderungen vom " & Range("E3") & ""
.Attachments.Add strDatei
.HTMLBody = "" & _
"Hallo zusammen, 
" & _ "anbei sende ich euch die Änderungen des heutigen Tages.
" & .HTMLBody .Display 'or use .Send End With '** Erzeugte Datei schließen Workbooks(Dir(strDatei)).Close '** Erzeugte Datei wieder löschen Kill (strDatei) On Error GoTo 0 Set xOutMail = Nothing Set xOutApp = Nothing '** - - - Datum löschen, Zellen wieder einblenden - - - Range("E3").Select ActiveCell.FormulaR1C1 = "" ActiveSheet.Range("$A$7:$H$40").AutoFilter Field:=8 ActiveSheet.Protect End Sub
Gruß
RaMa

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

Betreff
Datum
Anwender
Anzeige
AW: Fenster zum Auswählen E-Mail-Empfänger
29.10.2021 09:15:05
Pierre
Hallo Rama,
ich kann es nicht testen, aber probiere es mal mit:
ComboBox1.List(ComboBox1.ListIndex)
Gruß Pierre
AW: Fenster zum Auswählen E-Mail-Empfänger
29.10.2021 10:10:06
RaMa
Hallo Pierre,
vielen Dank für deine Antwort.
Leider bin ich überfordert, ich habe dein Code bei mir eingefügt, aber es ist nichts passiert:
- an welche Stelle muss ich dein Code eingeben?
- wie sage ich deinem Code, wo die Namen der Mitarbeiter sind?
Entschuldige, das sind komplett neue Befehle für mich.
Grüße
AW: Fenster zum Auswählen E-Mail-Empfänger
29.10.2021 11:31:12
Pierre
Hallo,
wie gesagt, testen kann ich es leider nicht...
ich würde vermuten, dass

.To = "asdf@mail.de" & ";" & "qwert@mail.de" & ComboBox1.List(ComboBox1.ListIndex)
gehen könnte. Ohne Gewähr!
Für die ComboBox-Füllung reicht dann:

Private Sub Worksheet_Activate()
ComboBox1.List = Sheets(1).Range("A1:A10").Value    'hier das tatsächliche Blatt und den Bereich, wo die Adressen stehen, abändern
End Sub
Wenn das nicht klappt, müsste jemand dran, der 1. besser als ich ist und 2. den Spaß auch testen kann...
Gruß Pierre
Anzeige
AW: Fenster zum Auswählen E-Mail-Empfänger
29.10.2021 17:46:16
RaMa
Hallo,
vielen lieben Dank für eure Vorschläge. Ich habe diese als Denkanstoß genutzt und mir Videos zu Comboboxen angeschaut.
Mit dem, was ich bis jetzt hinbekommen habe, bin ich soweit zufrieden (bis heute Morgen wusste ich ja nicht einmal, was eine Combobox ist):
- ich klicke auf eine Schaltfläche
- dann öffnet sich eine Combobox
- dort kann ich mir eine beliebige E-Mailadresse per Auswahlmenü anklicken
- drunter habe ich einen CommandButton gesetzt, der dann mein E-Mail-Makro startet
Das Problem ist weiterhin, dass die in der Combobox angeklickte E-Mailadresse nicht genommen wird.
wen ich den vorgeschlagenen Code einfüge, steht auf einmal nichts mehr in der Adresszeile.
Hat mir noch jemand eine Idee?
Hier nochmals mein jetzt mit Combobox angepasstes Makro:

Private Sub UserForm_Initialize()
With UserForm1.Box1
UserForm1.Box1.RowSource = "Datenblatt!S2:S5"
End With
End Sub

Private Sub CommandButton1_Click()
'** - - - Heutiges Datum, filtern und sortieren - - -
ActiveSheet.Unprotect
Range("E3").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
ActiveSheet.Range("$A$7:$H$40").AutoFilter Field:=8, Criteria1:=""
ActiveWorkbook.Worksheets("Mengenänderungen_Info-Mail").AutoFilter.Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Mengenänderungen_Info-Mail").AutoFilter.Sort. _
SortFields.Add Key:=Range("H7:H40"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Mengenänderungen_Info-Mail").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'** - - - Automatische E-Mail - - -
Dim xOutApp As Object
Dim xOutMail As Object
Dim strBlatt As String
Dim strDatei As String
Dim strPfad As String
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
'** Pfad und Dateiname benennen
strDatei = "C:\Temp\Änderungen vom " & Range("E3") & ".pdf"
'** aktive Tabelle als PDF speichern
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strDatei, Quality:=xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
With xOutMail
.GetInspector
.To = "asdf@web.de" & ";" & "qwer@web.de"
.CC = ""
.BCC = ""
.Subject = "Änderungen vom " & Range("E3") & ""
.Attachments.Add strDatei
.HTMLBody = "" & _
"Hallo zusammen, 
" & _ "anbei sende ich euch die Änderungen des heutigen Tages.
" & .HTMLBody .Display 'or use .Send End With '** Erzeugte Datei schließen Workbooks(Dir(strDatei)).Close '** Erzeugte Datei wieder löschen Kill (strDatei) On Error GoTo 0 Set xOutMail = Nothing Set xOutApp = Nothing '** - - - Datum löschen, Zellen wieder einblenden - - - Range("E3").Select ActiveCell.FormulaR1C1 = "" ActiveSheet.Range("$A$7:$H$40").AutoFilter Field:=8 ActiveSheet.Protect End Sub

Anzeige
AW: Fenster zum Auswählen E-Mail-Empfänger
30.10.2021 12:22:44
RaMa
Hallo Pierre,
ich habe es nach unzähligen Versuchen geschafft:
.To = "asdf@....de" & ";" & "qwer@....de" & ";" & Box1.List(Box1.ListIndex)
Vielen Dank für die Hilfe.
Grüße
RaMa
bitteschön (wenn auch spät)
02.11.2021 09:42:27
Pierre
Sorry aber, dass ich die Codezeile nur so hinger... habe.
Hätte ich eigentlich sehen müssen, dass da noch eine weitere ";" - Verknüpfung zwischen den Adressen und der ComboBox hätte stehen müssen.
Gruß Pierre
AW: Fenster zum Auswählen E-Mail-Empfänger
29.10.2021 09:36:01
mumpel
Mit einer Listbox oder einem Treeview wäre das möglich.

139 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige