E-Mail verschiedene Bereiche hinzufügen
#1
Hallo zusammen,

ich habe in einer Exel-Mappe ein Modul wodurch eine E-Mail erzeugt wird und ein bestimmter Teil aus einem Tabbellenblatt eingefügt wird.
Wie muss ich den Code ändern, wenn ich mehrere Bereiche in der E-Mail versenden möchte. Es sollen die Bereiche B5:N43, P5:AB43, AD5:AP43 und AR5:BD43 dargestellt werden.

Hier der Original-Code:

Set rng = Sheets("Blatt2").Range("B5:BD43")

Ich danke euch für eure Hilfe.

Mit besten Grüßen
Ole
Antworten Top
#2
Hi,


Set rng = Sheets("Blatt2").Range("B5:N43, P5:AB43, AD5:AP43, AR5:BD43")
Antworten Top
#3
Hi Boris,

danke für deine Hilfe.
jetzt bekomme ich in der Funktion RangetoHTML (rng As Range) den Fehler, dass mehrere bereiche nicht möglich sind.

Function RangetoHTML(rng As Range)

Dim TempFile As String
Dim TextStream As Object
Dim FSO As Object
Dim TempWB As Workbook
TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
rng.Copy
Set TempWB = Workbooks.Add(1)

Hast du dafür auch eine Idee?

Gruß Ole
Antworten Top
#4
Hallo Ole,

das PublishObjects.Add unterstützt diese Mehrfachrangeangabe nicht.

Ungeprüfte Ideen dazu:
- die Spalten O, AC und AQ vor der Benutzung von RangetoHTML ausblenden und später wieder einblenden
- RangeToHTML mehrfach benutzen
- .GetInspector.WordEditor.Paste mehrfach verwenden

Gruß Karl-Heinz
Antworten Top
#5
Hi,


Zitat:jetzt bekomme ich in der Funktion RangetoHTML (rng As Range) den Fehler, dass mehrere bereiche nicht möglich sind.

Ja, ist mir bekannt - aber von der UDF stand nix in der Frage Wink

Die Hinweise von Karl-Heinz werden aber sicher fruchten Smile
Antworten Top
#6
Hallo zusammen und Danke für eure Hilfe.

Wir haben inzwischen eine Lösung gefunden.

Für jeden Bereich eine rng definiert .

Set rng(1) = Sheets("Blatt2").Range("B5:N43")
Set rng(2) = Sheets("Blatt2").Range("P5:AB43")
Set rng(3) = Sheets("Blatt2").Range("AD5:AP43")
Set rng(4) = Sheets("Blatt2").Range("AR5:BD43")

und im Body das untereinandersetzen bestimmt.



" + RangetoHTML(rng(1)) + RangetoHTML(rng(2)) + RangetoHTML(rng(3)) + RangetoHTML(rng(4))

Funktioniert perfekt.
Gruß Ole
Antworten Top
#7
Hi Ole,

genauso war mein zweiter Tipp gemeint.....

Alternativ auch ohne Objektvariablen....

With Sheets("Blatt2")
    & RangetoHTML (.Range("B5:N43"))    & RangetoHTML(.Range("P5:AB43")) _
    & RangetoHTML(.Range("AD5:AP43")) & RangetoHTML(.Range("AR5:BD43"))
End With


oder

Set WSh = Sheets("Blatt2")
...&  RangetoHTML (WSh.Range("B5:N43")) & RangetoHTML(WSh.Range("P5:AB43")) _
& RangetoHTML(WSh.Range("AD5:AP43")) & RangetoHTML(WSh.Range("AR5:BD43"))

Gruß KH
Antworten Top
#8
Hi Volti,

danke und ich wollte es etwas aus unserer Lösung aufzeigen.

Danke  21
Antworten Top


Gehe zu:


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