Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
30.12.2020, 11:01
(Dieser Beitrag wurde zuletzt bearbeitet: 30.12.2020, 11:03 von cysu11.
Bearbeitungsgrund: ergänzt
)
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
Registriert seit: 30.08.2014
Version(en): Office 365 - Beta 32 Bit
Hallo,
falls du in deiner Excelversion "
TEXTVERKETTEN" drin hast, könntest du es so schreiben:
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.
________
Servus
Case
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
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
Registriert seit: 30.08.2014
Version(en): Office 365 - Beta 32 Bit
Hallo,
es gibt
immer mehrere Wege:
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
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
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