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.

Text von Excel Bereich automatisch in Email übernehmen...
#1
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.

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 _  (Felder aus 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
Antworten Top
#2
Hi,

anstelle von nur Code (der auch noch so schlecht angezeigt wird, weil du nicht den richtigen Formatier-Button verwendest) zeig doch bitte mal per Upload eine Bsp-Datei mit eben Bsp-Daten (Texten) und deinem Code.

Bitte zukünftig den Code-Button nutzen, wenn du Code zeigen willst. Welcher Button das ist, siehst du im Anhang.

Ciao
Thorsten


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#3
Hi,

dein Code ist wirklich schlecht zu lesen. Vielleicht solltest du die Formatierung schön machen oder tatsächlich deine Datei zur Verfügung stellen.
Ich habe mal einen VBA-Code erstellt, welcher aus dem Inhalt des Tabellenblatts per Button eine E-Mail erstellt, allerdings ohne Anhänge.
Das könnte ich dir zur Verfügung stellen.

Gruß dev5fr
Antworten Top
#4
Code:
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 = "<font size=4 color=black name=Arial> Hallo Zusammen,<BR><BR>" _
            & "es geht um eine/n : <BR><BR>" _
            & "<B>Neueinrichtung eines neuen Mitarbeiters</B> (<B><font size=4 color=red name=Arial>✔</B></Font>)<BR>oder <BR> <B>Abmeldung eines ausscheidenden  Mitarbeiters</B> (<B><font size=4 color=red name=Arial>✗</B></Font>)<BR><BR><BR>" _
            & "<U><B>Anlage Prozess:</U></B><BR>   <font size=3 color=black name=Arial><B>Diese Mail wurde ausgelöst, da entweder ein neuer Mitarbeiter die DELA Lebensversicherung verstärken wird oder ggf. verlässt.<BR>" _
            & " Um den Prozess klar struktieriert zu halten nun <font size=4 color=red name=Arial> die folgenden Hinweise an die möglichen Empfänger </Font> dieser Mail:<BR><BR><BR></B>" _
            & "<U><B>Heymanns IT:</B></U><BR><B>Bitte den Mitarbeiter wie im PDF angegeben einrichten, alle nötigen <font size=4 color=red name=Arial>Anforderungen und Vorgaben</Font> sind auf dem Mitarbeiterlaufzettel angegeben.  </B> <BR><BR>" _
  ****PROBLEM!!        & MsgBox Range("R90:R116").Text _  (Tabellenname Zusammenfassung II)
            & "sollten sich Rückfragen in einem Anlagepunkt ergeben, bitte melden...<BR><BR>" & 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

Danke für den Tipp, habe den Code nun nochmal sauber eingekopiert!

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..
Antworten Top
#5
Hi,

"super" Button für Code gefunden!

Ich bin trotzdem raus!

Du erzählst zwar was davon, dass die dynamischen Texte aus dem Bereich R90 bis R116 kommen, aaaber....du verrätst nich, wo genau im vorformulierten Mailtext diese Bausteine eingefügt werden sollen.
Ja, ja, ja...so ein Fach-Forum is schon megaklasse, aber nein, nein, nein....trotzdem kann dir niemand in deinen Kopf gucken - du musst uns schon - alle - Details verraten.

Ich halte eine Bsp-Datei - mit Bsp-Daten - mit Code...noch immer für eine gute Idee....aber du willst ja keine Datei uploaden.

Ciao
Ich
Antworten Top
#6
Hey,

ich hatte die Stelle eigentlich markiert und Problem hingeschrieben ...also genau dort soll immer der Text erscheinen der ggf im Bereich R vorhanden sein könnte..

mit dem Upload muss ich später mal schauen gerade leider nicht am pc ...
Antworten Top
#7
Hi,

statt 
Code:
& MsgBox Range("R90:R116").Text _

verwendest du einfach
Code:
& WorksheetFunction.TextJoin("<BR>", True, Worksheets("Zusammenfassung II").Range("R90:R116")) _
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#8
Hi,

ok, mein Fehler! Hatte die Stelle im Code schlicht nicht gesehen.
Und genau deswegen bin zumindest ich ein Freund von Bsp-Dateien, denn im VBE sieht a) doch wieder alles ganz anmders aus, b) könnte man auch testen, was ja mit - nur Code - nicht geht.
Aber ok, du hast ja einen Änderungsvorschlag.
Bin auf dein Feedback neugierig.

Ciao
Thorsten
Antworten Top
#9
Rainbow 
Vielen Danke das hat mir sehr weiter geholfen!
Antworten Top


Gehe zu:


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