Anzeige
Archiv - Navigation
1900to1904
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
Inhaltsverzeichnis

optionalen Text automatisch übernehmen!

optionalen Text automatisch übernehmen!
05.10.2022 15:20:03
sam
Hey Leute
ein Anfänger braucht mal wieder hilfe...
Ich möchte gerne einen Text der in Bestimmten Feldern steht R90 bis R116
in den Text der Email übernehmen ...
die VBA hat funktioniert ..mit vorgegebenen Texten..jedoch sollen die bestimmten Texte nur erscheinen wenn die Felder in Excel gefüllt sind.
Kann mir jemand sagen wie ich einen bestimmten Bereich (in Tabelle Zusammenfassung II) auslesen und dann automatisch in den Email Text hineinbekomme , der Anfang des Mailtextes ist immer gleich deshalb schon in HTML vorgegeben? GGf auch mit der möglichkeit diesen übernommen Text zu formatieren?
Habe das Problem markiert wo genau der Text hin soll der dann im Bereich R90-116 auftauchen könnte.
Update!
es geht darum eine halb vorgefertigte Mail eben um einen Optionalen Text zu ergänzen, der Optionale Text würde wenn im Bereich R90 bis R116 auftauchen. (tabellenblatt heisst Zusammenfassung II)
dieser soll dann einfach übernommen werden..ob das überhaupt geht weis ich nicht ..aber bisher hat nichts geklappt.
der Rest funktioniert. geht also nur um die Textübernahme..ggf mit formatierung..da der Rest in HTML ist ...
Vielen Dank..für die Hilfe... Idea
ciao Sam Huh

Sub Zusammenfassung_per_EmailTestHTmLAuto()
'** Dimensionierung der Variablen
Dim strPDF As String
Dim OutlookApp As Object, strEmail As Object
Dim olOldbody As String
'** Vorgaben definieren
Set OutlookApp = CreateObject("Outlook.Application")
Set strEmail = OutlookApp.CreateItem(0)
'** PDF erzeugen
ThisWorkbook.Sheets("Zusammenfassung II").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\MitarbeiterlaufzettelZF.pdf", Quality:=xlQualityStandard _
, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish _
:=False
'** E-Mail versenden
strPDF = ThisWorkbook.Path & "\MitarbeiterlaufzettelZF.pdf"
With strEmail
.To = "support@heymanns.de"
.CC = Worksheets("Zusammenfassung II").Range("T27")
.Subject = "Mitarbeiterlaufzettel - Neuer Mitarbeiter zum " & Range("T28") 'Betreffzeile .Subject = Worksheets("Tabelle1").Range("M121")
.GetInspector
olOldbody = .htmlBody
.BodyFormat = 2 'olFormatHTML
.htmlBody = " Hallo Zusammen,

" _ & "es geht um eine/n :

" _ & "Neueinrichtung eines neuen Mitarbeiters (
)
oder
Abmeldung eines ausscheidenden Mitarbeiters ()


" _ & "Anlage Prozess:
Diese Mail wurde ausgelöst, da entweder ein neuer Mitarbeiter die DELA Lebensversicherung verstärken wird oder ggf. verlässt.
" _ & " Um den Prozess klar struktieriert zu halten nun die folgenden Hinweise an die möglichen Empfänger dieser Mail:


" _ & "Heymanns IT:
Bitte den Mitarbeiter wie im PDF angegeben einrichten, alle nötigen Anforderungen und Vorgaben sind auf dem Mitarbeiterlaufzettel angegeben.

" _ ****PROBLEM!! & MsgBox Range("R90:R116").Text _ (Tabellenname Zusammenfassung II) & "sollten sich Rückfragen in einem Anlagepunkt ergeben, bitte melden...

" & olOldbody .Attachments.Add strPDF .Display '.Send 'Damit wir die E-Mail sofort versendet Kill strPDF End With '** Objektvariablen wieder löschen Set OutlookApp = Nothing Set strEmail = Nothing End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: optionalen Text automatisch übernehmen!
05.10.2022 17:11:09
Yal
Hallo Sam,
probiere:

Function TextOhneLucke() As String
Dim Z As Range
Dim msg As String
For Each Z In Range("R90:R116")
If Z.Value  "" Then msg = msg & vbCr & Z.Value
Next
TextOhneLucke = Mid(msg, 2) 'ohne führende vbCr
End Function
Sub Test()
MsgBox TextOhneLucke
End Sub
VG
Yal
optionalen Text automatisch übernehmen!
06.10.2022 15:51:23
sam
HI Yal vielen dank und wie nutze ich den Code genau ..muss ich den in meinen Code reinkopieren oder läuft der nebenbei?
Und Funktioniert dass auch wenn das Tabellenblatt Zusammenfassung II heisst? und wohin kopiert er dann den Text in die Email?
Anzeige
AW: optionalen Text automatisch übernehmen!
06.10.2022 16:57:50
Yal
Hallo Sam,
die Basics solltest Du dir schnellsten eineignen, sonst wird's schwierig.

Sub Zusammenfassung_per_EmailTestHTmLAuto()
'** Dimensionierung der Variablen
Dim strPDF As String
Dim OutlookApp As Object, strEmail As Object
Dim olOldbody As String
'** Vorgaben definieren
Set OutlookApp = CreateObject("Outlook.Application")
Set strEmail = OutlookApp.CreateItem(0)
'** PDF erzeugen
strPDF = ThisWorkbook.Path & "\MitarbeiterlaufzettelZF.pdf"
ThisWorkbook.Sheets("Zusammenfassung II").ExportAsFixedFormat _
Type:=xlTypePDF, Filename:=strPDF, Quality:=xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
'** E-Mail versenden
With strEmail
.To = "support@heymanns.de"
.CC = Worksheets("Zusammenfassung II").Range("T27")
.Subject = "Mitarbeiterlaufzettel - Neuer Mitarbeiter zum " & Range("T28") 'Betreffzeile .Subject = Worksheets("Tabelle1").Range("M121")
.GetInspector
olOldbody = .htmlBody
.BodyFormat = 2 'olFormatHTML
.htmlBody = " Hallo Zusammen," _
& "es geht um eine/n : " _
& "Neueinrichtung eines neuen Mitarbeiters (?)oder  Abmeldung eines ausscheidenden  Mitarbeiters (?)" _
& "Anlage Prozess:   Diese Mail wurde ausgelöst, da entweder ein neuer Mitarbeiter die DELA Lebensversicherung verstärken wird oder ggf. verlässt." _
& " Um den Prozess klar struktieriert zu halten nun  die folgenden Hinweise an die möglichen Empfänger  dieser Mail:" _
& "Heymanns IT:Bitte den Mitarbeiter wie im PDF angegeben einrichten, alle nötigen Anforderungen und Vorgaben sind auf dem Mitarbeiterlaufzettel angegeben.   " _
& TextOhneLucke(Worksheets("Zusammenfassung II")) _
& "sollten sich Rückfragen in einem Anlagepunkt ergeben, bitte melden..." & olOldbody
.Attachments.Add strPDF
.Display
'.Send 'Damit wir die E-Mail sofort versendet
Kill strPDF
End With
'** Objektvariablen wieder löschen
Set OutlookApp = Nothing
Set strEmail = Nothing
End Sub
Private Function TextOhneLucke(Ws As Worksheet) As String
Dim Z As Range
Dim msg As String
For Each Z In Ws.Range("R90:R116")
If Z.Value  "" Then msg = msg & vbCr & Z.Value
Next
TextOhneLucke = Mid(msg, 2) 'ohne führende vbCr
End Function
VG
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige