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.

Email senden Excel
#1
Guten Morgen!
Ich habe eine Frage zu einem VBA Code der mir per Klick auf eine Schaltfläche eine bestimmte Email versendet. Ich möchte zu jeder Zeile, einen "senden" Button haben, der abhängig von bestimmten Zellen bestimmte Texte in die Mail einfügt und den Betreff anpasst. 

Grundsätzlich ist das ja kein Problem wenn man das nur für eine Zeile machen möchte, jetzt hab ich aber ca 100 Zeilen für die ich das machen will und mir fällt momentan nur die Lösung ein für jede Zeile quasi ein eigenes Modul zu erstellen und dann das jeweilige Modul zur jeweiligen Schaltfläche zuzuordnen; in etwa so:

1. Zeile:

Code:
Sub EmailDirektSenden1()

Dim objOutlook As Object
Dim objMail As Object

Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)

With objMail
   .To = Range("C2").Value
   .Subject = Range("E2").Value
   .Body = Range("B2").Value
   .CC = Range("D2").Value
   .display
End With

End Sub

2. Zeile
Code:
Sub EmailDirektSenden2()

Dim objOutlook As Object
Dim objMail As Object

Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)

With objMail
  .To = Range("C3").Value
  .Subject = Range("E3").Value
  .Body = Range("B3").Value
  .CC = Range("D3").Value
  .display
End With

End Sub

3. Zeile 
Code:
Sub EmailDirektSenden3()

Dim objOutlook As Object
Dim objMail As Object

Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)

With objMail
  .To = Range("C4").Value
  .Subject = Range("E4").Value
  .Body = Range("B4").Value
  .CC = Range("D4").Value
  .display
End With

End Sub

.... usw... bis Zeile 100.

Ich bin mir sicher es gibt einen besseren Weg, als jetzt zu jeder Zeile ein neues Modul zu erstellen und dann die entsprechende Schaltfläche zuzuordnen.

Bin über jeden Input dankbar!

Gruß 


.xlsm   Mail Test mit Makro.xlsm (Größe: 18,85 KB / Downloads: 1)


.xlsx   Mail Test ohne Makro.xlsx (Größe: 12,44 KB / Downloads: 0)
Antworten Top
#2
Hallo,

versuch mal so (jeden Button das Gleiche Makro zuweisen)

Code:
Sub EmailDirektSenden1()

Dim objOutlook As Object
Dim objMail As Object
Dim lngZeile As Long

Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
lngZeile = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row

With objMail
   .To = Cells(lngZeile, 3).Value
   .Subject = Cells(lngZeile, 5).Value
   .Body = Cells(lngZeile, 2).Value
   .CC = Cells(lngZeile, 4).Value
   .display
End With

End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • diving_excel
Antworten Top
#3
Vielen Dank! Funktioniert perfekt!
Antworten Top


Gehe zu:


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