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.

Outlook Mailbetreff aus Excel
#1
Hallo zusammen,

ich hoffe es geht Euch allen gut und seid gesund! :)

Ich habe ein Frage. Ich versende per VBA aus Excel Emails und ziehe den Betreff aus diversen Zellen mit:

Code:
.Subject = Range("C4").Text & "-" & Range("C1").Text & ", " & Range("C2").Text & " " & Range("C3").Text

Ich würde das gerne erweitern mit Bestellnummern, die in der Spalte E ab Zeile 6 drin stehen untereinander, mal steht nur eine Bestellnummer drin, mal sind es 10 etc.. Wie kann ich diese flexibel mit ein "," dazwischen im Betreff an den o.g. Code dranhängen?


Vielen lieben Dank im Voraus
LG
Alexandra
Antworten Top
#2
Hallo, 19

falls du in deiner Excelversion "TEXTVERKETTEN" drin hast, könntest du es so schreiben: 21

Code:
.Subject = Range("C4").Text & "-" & Range("C1").Text & ", " & Range("C2").Text & " " & Range("C3").Text & ", " & ActiveSheet.Evaluate("=TEXTJOIN("", "",TRUE,E6:E30)")

Das "E30" kannst du ja anpassen. Dodgy
________
Servus
Case
Antworten Top
#3
Hallo Case,

super, das funktioniert sehr gut! Vielen Dank dafür! :)

Ich hatte die ganze Zeit eine Schleife im Kopf, würde es mit einer Schleife auch funktionieren, wenn ja wie? Das ist nur, weil mich das interessiert! :)

Ganz lieben Dank
Alexandra
Antworten Top
#4
Hallo, 19

es gibt immer mehrere Wege: 21

Code:
Option Explicit
Public Sub Main_1()
    Dim strTMP As String
    Dim lngTMP As Long
    With ThisWorkbook.Worksheets("Tabelle1")
        For lngTMP = 6 To .Cells(.Rows.Count, 5).End(xlUp).Row
            strTMP = strTMP & .Cells(lngTMP, 5).Value & ", "
        Next lngTMP
        strTMP = .Range("C4").Text & "-" & .Range("C1").Text & ", " & .Range("C2").Text & " " & .Range("C3").Text & ", " & Left(strTMP, Len(strTMP) - 2)
    End With
End Sub
Public Sub Main_2()
    Dim strTMP As String
    With ThisWorkbook.Worksheets("Tabelle1")
        strTMP = .Range("C4").Text & "-" & .Range("C1").Text & ", " & .Range("C2").Text & " " & .Range("C3").Text & ", " & Join(Application.Transpose(.Range("E6:E" & .Cells(.Rows.Count, 5).End(xlUp).Row)), ", ")
    End With
End Sub
________
Servus
Case
Antworten Top
#5
Hallo Case,

super, bin da auf dem Schlauch gestanden, so macht es natürlich Sinn, wie Du das geschrieben hast! :)

Vielen lieben Dank, guten Rutsch & bleibt Alle gesund! :9

LG
Alexandra
Antworten Top


Gehe zu:


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