Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
816to820
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
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Mail schreiben, Tab setzen
02.11.2006 15:04:59
mtremer
Hallo Excel-Freunde,
ich habe mal wieder eine Frage zum Schreiben einer Mail:
Wie bekomme ich es hin, dass ich unter "Mit freundlichen Grüssen" zwei Namen darunter setze?
OK, zwei Namen sind ja einfach ;-)
Aber: unter beide Namen kommen die Abteilungen. Diese beiden Zeilen sollen exakt untereinander stehen, die Namen und Abteilungen ca. 10cm auseinander. Genau wie in einem Geschäftsbrief...
Hier mein Code:
Private Sub CommandButton6_Click()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim AWS As String
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.SentOnBehalfOfName =
.To =
.CC =
.Subject =
strTxt = "Sehr geehrte Damen und Herren," &
strTxt = strTxt & "
"
'strTxt = strTxt & "Mit freundlichen Grüßen" & "
"
'strTxt = strTxt & "
"
.Htmlbody = strTxt
.Display
End With
Danke für Eure Mühe.
Viele Grüße
Marco

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mail schreiben, Tab setzen
02.11.2006 15:17:40
mumpel
Hallo!
Versuchs mal so:
'strTxt = "Mit freundlichen Grüßen" & vbcrlf & "ErsterName" & vbcrlf & "Abteilung1" & vbcrlf & vbcrlf & "zweiterName" & vbcrlf & "Abteilung2"
usw. Mit vbcrlf setzt eine neue Zeile.
Gruss Rene
AW: Mail schreiben, Tab setzen
02.11.2006 15:29:18
mtremer
Hallo Rene,
leider nicht.
Er schreibt alle vier Argumente direkt hintereinander weg.
Mein Gedanke ist ja, dies mit einer Art Tabulator zu lösen.
Aber da ich ja kaum Ahnung von VBA habe, weiss ich nicht, mit welchem Code ich die beiden Namen trennen kann.
Aber trotzdem danke für Deinen Vorschlag.
Deine Exceldatei sieht ja auch heiss aus. Wie hast Du das programmiert?
Nur so nebenher gefragt, da das andere Problem mich gerade zum Verzweifeln bringt...
Viele Grüße
Marco
Anzeige
AW: Mail schreiben, Tab setzen
02.11.2006 15:37:52
mumpel
Wie ich das gemacht habe, kannst Du im Makrocode sehen. Der ist offen sichtbar.
Du kannst ja mal von Deiner Mappe ein Beispiel hier hin stellen, dann können wir uns das mal anschauen. Sicherheitsrelevante Daten kannst Du ja vorher entfernen.
Gruss Rene
AW: Mail schreiben, Tab setzen
02.11.2006 15:46:12
mumpel
Habe den Fehler gerade gefunden. Du benutzt die Anweisung .htmlbody Und genau das ist der Fehler. Beutze stattdessen nur .body Dann geht es auch, mit meinem Beispiel.
Gruss Rene
AW: Mail schreiben, Tab setzen
02.11.2006 16:27:23
mtremer
Hatte ich mir schon fast gedacht.
aber leider muss ich .htmlbody benutzen, weil ich hierdurch einige andere Funktionen nutze. Anfangs musste ich leider von .body abwandern...
Hast Du noch eine andere Lösung?
Viele Grüße
Marco
Anzeige
AW: Mail schreiben, Tab setzen
02.11.2006 17:09:15
mumpel
Mit HTML-Mails habe ich noch nicht gearbeitet. Welche Funktionen möchtest nutzen? Möglicherweise kann ich das meinen Code einbauen.
Gruss Rene
AW: Mail schreiben, Tab setzen
02.11.2006 17:13:44
mtremer
OK, ich schau mir das mal an. Ich bereite Dir dann den Code mal vor...
Aber erst morgen, da ich gleich weg bin.
Bis morgen also und schon mal vielen Dank.
Viele Grüße
Marco
AW: Mail schreiben, Tab setzen
02.11.2006 18:54:03
IngGi
Hallo Marco,
wenn du htmlbody verwendest, kannst/musst du den Text mit HTML-Tags formatieren. Zum Ausrichten der Texte käme da am ehesten eine Tabelle ohne Rahmen in Frage. Für zwei Zeilen nach dem Muster
Hans Maier             Peter Wolf
Abteilung 1            Abteilung 2
würde das dann ungefähr so aussehen:


Sub test()
Dim olApp As Object
Dim olMail As Object
Dim strBody As String
Set olApp = GetObject(, "Outlook.Application")
Set olMail = olApp.CreateItem(0)
strBody = "<table width=""50%""><tr><td>Hans Maier</td><td>Peter Wolf</td></tr>" & _
   "<tr><td>Abteilung 1</td><td>Abteilung 2</td></tr></table>"
olMail.htmlbody = strBody
olMail.Display
Set olMail = Nothing
Set olApp = Nothing
End Sub


Folgende HTML-Tags werden dabei verwendet:
<table width="50%"></table>Anfang und Ende der Tabelle (Tabellenbreite=50% der Gesamtbreite)
<tr></tr>Anfang und Ende einer Tabellenzeile innerhalb der Tabelle
<td></td>Anfang und Ende einer Tabellenspalte innerhalb der Tabellenzeile

Gruß Ingolf
Anzeige
AW: Mail schreiben, Tab setzen
03.11.2006 13:38:22
mtremer
Hallo Ingolf,
Deine Antwort hat mich schon wie so oft zur Lösung gebracht.
Danke!
Nun habe ich aber noch zwei kleine Zusatzfragen:
Wie mache ich einen (hier normalen) Eintrag kursiv? habe ich für fett, "" für unterstrichen. "" ist leider nicht kursiv...
Der Anfang der Tabelle ist ein ganz kleines bisschen weiter in die Mail eingerückt. Kann man den Anfang auch bündig mit dem restlichen Text machen?
Danke für Deine Mühe.
Viele Grüße
Marco
AW: Mail schreiben, Tab setzen
03.11.2006 13:41:07
mtremer
Hallo Ingolf,
Deine Antwort hat mich schon wie so oft zur Lösung gebracht.
Danke!
Nun habe ich aber noch zwei kleine Zusatzfragen:
Wie mache ich einen (hier normalen) Eintrag kursiv? habe ich für fett, "" für unterstrichen. "" ist leider nicht kursiv...
Der Anfang der Tabelle ist ein ganz kleines bisschen weiter in die Mail eingerückt. Kann man den Anfang auch bündig mit dem restlichen Text machen?
Danke für Deine Mühe.
Viele Grüße
Marco
Anzeige
halt, Lösung gefunden
03.11.2006 13:46:07
mtremer
DANKE AN ALLE
Viele Grüße
Marco
mist doch nicht
03.11.2006 14:15:13
mtremer
Sorry, habe mich zu sehr darüber gefreut, Mails auch in kursiv zu schreiben, da hatte ich die Fragen doch glatt vergessen:
Der Anfang der Tabelle ist ein ganz kleines bisschen weiter in die Mail eingerückt. Kann man den Anfang auch bündig mit dem restlichen Text machen?
Viele Grüße
Marco
AW: Mail schreiben, Tab setzen
03.11.2006 14:48:12
IngGi
Hallo Marco,
<i>So kriegst du Kursivschrift hin. "i" steht für "italic" (engl.)</i>
Das mit der Einrückung ist dagegen schwierig. Sie entsteht dadurch, dass die Tabelle einen Rahmen hat, auch wenn man den nicht sieht. Alles was mir dazu einfällt ist, auch den Rest der eMail in eine Tabelle zu packen, so dass alles gleich eingerückt ist. Dann musst du allerdings für jeden Absatz eine eigene Tabelle anlegen. Außerdem kannst du keinen Fließtext mehr verwenden, sondern musst die Zeilenumbrüche von Hand steuern. Hier mal ein Beispiel:


Sub test()
Dim olApp As Object
Dim olMail As Object
Dim strBody As String
Set olApp = GetObject(, "Outlook.Application")
Set olMail = olApp.CreateItem(0)
strBody = _
"<table width=""100%"">" & _
   "<tr><font face=""Arial"">Sehr geehrte Damen und Herren,<font face=""Arial""></tr>" & _
"</table><br>" & _
 _
"<table width=""100%"">" & _
   "<tr> </tr>" & _
   "<tr><font face=""Arial"">anbei der gewünschte Geschäftsbericht für das 3. Quartal 2006." & _
   "</font></tr>" & _
   "<tr><font face=""Arial"">Wir bitten um Rückmeldung innerhalb einer Woche.</font></tr>" & _
"</table><br>" & _
 _
"<table width=""100%"">" & _
   "<tr><font face=""Arial"">Im Auftrag der Geschäftsleitung</font></tr>" & _
"</table><br>" & _
 _
"<table width=""50%"">" & _
   "<tr><td><font face=""Arial"">Hans Maier</font></td><td><font face=""Arial"">Peter Wolf" & _
   "</font></td></font></tr>" & _
   "<tr><td><font face=""Arial"">Abteilung 1</font></td><td><font face=""Arial"">Abteilung 2" & _
   "</font></td></font></tr>" & _
"</table>"
olMail.htmlbody = strBody
olMail.Display
Set olMail = Nothing
Set olApp = Nothing
End Sub


Gruß Ingolf
Anzeige
AW: Mail schreiben, Tab setzen
03.11.2006 15:10:18
mtremer
Hallo Ingolf,
wie immer ist Deine Antwort gut vorbereitet.
Aber leider bringt mich die Lösung nicht weiter.
Das Problem ist nicht nur, dass das viel Arbeit bedeutet, alle Zeilen mit einer Tabelle zu versehen.
Schlimmer ist, dass die Zeilenumbrüche nicht mehr automatisch gesetzt werden.
Weil ein Satz/Absatz durchaus länger wird, sähe es doof aus, wenn per Hand gesetzte Zeilenumbrüche durch eine beim Empfänger kleineren Mailfenster zusätzlich gebrochen werden.
Gibt es da eine andere Lösung für die Namen/Abteilungen als eine Tabelle?
Danke für Deine Mühe.
Viele Grüße
Marco
Anzeige
AW: Mail schreiben, Tab setzen
03.11.2006 17:04:17
IngGi
Hallo Marco,
ich hab' noch 'was gefunden. Funktioniert bei mir sehr gut mit der Schriftart Tahoma. Mit anderen nicht proportionalen Schriftarten wie Arial, Times New Roman oder Verdana bekomme ich von Zeile zu Zeile kleine unschöne Abweichungen im Tabulatorabstand. Probier das doch mal bei dir aus.

Sub test()
Dim olApp As Object
Dim olMail As Object
Dim strBody As String
Set olApp = GetObject(, "Outlook.Application")
Set olMail = olApp.CreateItem(0)
strBody = "<font face=""Tahoma"">Sehr geehrte Damen und Herren,<br><br>" & _
   "anbei der gewünschte Geschäftsbericht für das 3. Quartal 2006. Wir bitten um " & _
   "Rückmeldung innerhalb einer Woche.<br><br>" & _
   "Im Auftrag der Geschäftsleitung<br><br><br><br><br>" & _
   "Hans Maier<span style=""white-space:pre"">&#9;&#9;&#9;&#9;&#9;" & _
   "</span>Peter Wolf<br>" & _
   "Abteilung 1<span style=""white-space:pre"">&#9;&#9;&#9;&#9;&#9;" & _
   "</span>Abteilung 2</font>"
olMail.htmlbody = strBody
olMail.Display
Set olMail = Nothing
Set olApp = Nothing
End Sub


Gruß Ingolf
Anzeige
AW: Mail schreiben, Tab setzen
03.11.2006 17:23:23
mtremer
Hallo Ingolf,
danke, dass Du für mich noch weitergesucht hast.
Ich werde beide Varianten mal versuchen und meiner Chefin präsentieren ;-)
Viele Grüße und ein schönes Wochenende
Marco
AW: Mail schreiben, Tab setzen
03.11.2006 17:44:02
IngGi
Hallo Marco,
es geht sogar noch einfacher. Du brauchst nicht mal die Span-Tags. Setzte einfach die Zeichenfolge "&#9;" für jede Tabulatorschaltung zwischen die entsprechenden Textteile, also


Sub test()
Dim olApp As Object
Dim olMail As Object
Dim strBody As String
Set olApp = GetObject(, "Outlook.Application")
Set olMail = olApp.CreateItem(0)
strBody = "<font face=""Arial"">Sehr geehrte Damen und Herren,<br><br>" & _
   "anbei der gewünschte Geschäftsbericht für das 3. Quartal 2006. Wir bitten um " & _
   "Rückmeldung innerhalb einer Woche.<br><br>" & _
   "Im Auftrag der Geschäftsleitung<br><br><br><br><br>" & _
   "Hans Maier&#9;&#9;&#9;&#9;&#9;Peter Wolf<br>" & _
   "Abteilung 1&#9;&#9;&#9;&#9;&#9;Abteilung 2</font>"
olMail.htmlbody = strBody
olMail.Display
Set olMail = Nothing
Set olApp = Nothing
End Sub


Gruß Ingolf
Anzeige
AW: Mail schreiben, Tab setzen
02.11.2006 18:05:37
mumpel
Hier mal ein neuer Versuch. Könnte genau das sein, was Du suchst.

Sub MailProgrammÖffnen()
On Error Resume Next
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
strHtml = "<html><head></head><body bgcolor=""#ffffff"">"
strHtml = strHtml & "<b>Firma1</b><br>"
strHtml = strHtml & "Strasse1<br>"
strHtml = strHtml & "PLZ Stadt 1<p><p><p>"
strHtml = strHtml & "<b>Firma2</b><br>"
strHtml = strHtml & "Strasse2<br>"
strHtml = strHtml & "PLZ Stadt 2<p><p><p>"
strHtml = strHtml & "<b>Sehr geehrte Damen und Herren</b><p>"
strHtml = strHtml & "Das ist ein versuch<br>"
strHtml = strHtml & "eine HTML Mail in Excel<br>"
strHtml = strHtml & "VBA zu senden.<br>"
strHtml = strHtml & "Ob es wohl funktioniert?<p><p><p>"
strHtml = strHtml & "Mit freundlichen Grüßen,<br>"
strHtml = strHtml & "Rene H.,</p>"
strHtml = strHtml & "</body></html>"
.display
.to = "mail@billgates.com"
.Subject = "Guten Tag"
.HTMLBody = strHtml
End With
End Sub

Gruss Rene
Anzeige
AW: Mail schreiben, Tab setzen
03.11.2006 13:40:35
mtremer
Hallo Rene,
danke für Deinen neuen Versuch.
Ingolf hat mich mit seinem Beitrag aber auf die Lösung gebracht, die ich für mein Problem gesucht habe.
Nicht böse sein, ich bin für jeden Beitrag dankbar!
Viele Grüße
Marco

124 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige