Clever-Excel-Forum

Normale Version: Outlook Mailbetreff aus Excel
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
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
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
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
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