Live-Forum - Die aktuellen Beiträge
Datum
Titel
30.04.2024 07:15:05
29.04.2024 22:12:12
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

.body über Excel VBA Code befüllen

.body über Excel VBA Code befüllen
12.10.2022 09:48:08
Georg
Liebe Mitglieder, der Code unten macht prinzipiell was er soll. Was ich nicht schaffe:
Ich hätte gerne in der Zeile
.body = Ticketinhalt.Value
nicht nur die definierte Range integriert, sondern auch noch einen Text vorab dazu. Meine Versuche, das mit & und einer strgVariabeln zu verbinden schlugen fehl, ohne dass ich weiß warum. Es wurde nach wie vor nur die Variable "Ticketinhalt" eingefügt - keine Fehlermeldung
Die Mail - also .body - sollte so aussehen, als Beispiel:
"Dies ist mein Text, mit dem ich meinen Ansprechpartner anschreiben will......"
und dann erst die kopierte Range, was eine Tabelle ist.
Ich kenne mich nicht so gut aus damit, der Code ist aus dem Netz, und ich schaffe es nicht ganz, ihn an meine Anforderungen anzupassen.
der Commandbutton liegt auf einer Userform.
Ein Tipp wäre prima Gruß Georg

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2017/9/14
'Button für den Mailversand Rollen und Rechte Anlage User-Account, Outlook Gruppen
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailbody As Object
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
'das letzte Worksheet bestimmen
Dim lastWsh As Worksheet
Set lastWsh = ThisWorkbook.Worksheets(Sheets.Count)
'Wo endet Ticket1: finde das Keyword
Dim EndeTicket1 As Range
Set EndeTicket1 = Columns(2).Find(what:="EndeTicket1")
'Den Ticketinhalt für Ticket Kontoanlage etc bestimmen (so kann ich dann die anderen Rechte alle untereinander schreiben
Dim Ticketinhalt As Range
Set Ticketinhalt = lastWsh.Range(Cells(1, 1), Cells(EndeTicket1.Row - 1, EndeTicket1.Column))
Ticketinhalt.Copy
On Error Resume Next
'Und ab geht die Post
With xOutMail
.to = "support@gedikomservicedesk.freshservice.com"
.CC = ""
.BCC = ""
.Subject = "Konto Anlage" & "  " & TxtBoxBetreffBPx.Value
.body = Ticketinhalt.Value
.Display   'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
Application.Wait (Now + TimeValue("0:00:05"))
' Dann die Zwischenablage einfügen
'Application.SendKeys ("%bi") ' im Menü BEARBEITEN (Alt-B) das e-I-nfügen wählen
Application.SendKeys ("^v") ' Strg-V Anweisung ist die 2.Möglichkeit statt Alt-B + I
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: .body über Excel VBA Code befüllen
12.10.2022 10:09:49
Oberschlumpf
Hi Georg,
änder mal diese Zeile...

.body = Ticketinhalt.Value
...um in...

.body = "Dies ist mein Text, mit dem ich meinen Ansprechpartner anschreiben will......" & vbCrLf & vbCrLf
lastWsh.Range(Cells(1, 1), Cells(EndeTicket1.Row - 1, EndeTicket1.Column)).Copy
.body = .body & ActiveSheet.Paste 'wenn lastWsh nicht das aktive Sheet ist, dann vielleicht wie folgt
.body = .body & lastWsh.Paste 'also ENTWEDER diese Codezeile, ODER die vorhergehende - eine dieser beiden Zeilen musst du löschen!
Application.CutCopyMode = False
Die Codezeilen in deinem Code...

Dim Ticketinhalt As Range
Set Ticketinhalt = lastWsh.Range(Cells(1, 1), Cells(EndeTicket1.Row - 1, EndeTicket1.Column))
Ticketinhalt.Copy
...kannst du löschen
UND die Codezeilen...

Application.Wait (Now + TimeValue("0:00:05"))
' Dann die Zwischenablage einfügen
'Application.SendKeys ("%bi") ' im Menü BEARBEITEN (Alt-B) das e-I-nfügen wählen
Application.SendKeys ("^v") ' Strg-V Anweisung ist die 2.Möglichkeit statt Alt-B + I
...MUSST DU LÖSCHEN! (nach meiner Meinung zumindest; denn ich empfinde SendKeys als eine Programmierer-Unsitte - aber ok, jeder, wie er mag)
Nur in diesem Fall benötigst du die SendKeys-Zeilen nicht mehr.
Konnte ich helfen?
Wenn nein, zeig bitte per Upload eine aussagekräftige Bsp-Datei mit genügend Bsp-daten in den richtigen Zellen und deinem Code.
Ciao
Thorsten
Anzeige
AW: .body über Excel VBA Code befüllen
12.10.2022 10:56:30
Georg
Hallo Thorsten,
wenn ich die Zeile verwende
.body = .body & ActiveSheet.Paste 'wenn lastWsh nicht das aktive Sheet ist, dann vielleicht wie folgt
kommt dies in der Mail:
Dies ist mein Text, mit dem ich meinen Ansprechpartner anschreiben will......
Wahr
-------
Wenn ich die Zeile verwende
.body = .body & lastWsh.Paste
ist paste markiert mit der Meldung: Fehler beim Kompilieren: function oder variable erwartet.
Alles andere hab ich umgesetzt wie von dir beschrieben.
Was nun: Datei hochladen? Gruß G
AW: .body über Excel VBA Code befüllen
12.10.2022 10:54:42
volti
Hallo Georg,
hier noch eine Idee. Da kannst Du bei Bedarf auch Deine Signatur anfügen.
Code:


Private Sub CommandButton1_Click() Dim sMailtext As String, EndeTicket1 As Range With ThisWorkbook.Worksheets(Sheets.Count) Set EndeTicket1 = .Columns(2).Find(what:="EndeTicket1") If Not EndeTicket1 Is Nothing Then .Range(.Cells(1, 1), .Cells(EndeTicket1.Row - 1, EndeTicket1.Column)).Copy Else MsgBox "Kein Keyword gefunden!", vbCritical, "Mail senden" Exit Sub End If End With sMailtext = "Dies ist mein Text, mit dem ich meinen Ansprechpartner anschreiben will......" With CreateObject("Outlook.Application").CreateItem(0) .GetInspector .to = "support@gedikomservicedesk.freshservice.com" .CC = "" .BCC = "" .Subject = "Konto Anlage" & " " & TxtBoxBetreffBPx.Value .body = sMailtext & vbLf & vbLf & .body ' ggf. mit Signatur .Display ' or use .Send With .GetInspector.WordEditor.Application.Selection .start = Len(sMailtext) + 1 ' Einfügeposition ggf. anpassen .Paste ' Bereich einfügen End With End With End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: .body über Excel....perfekt es geht
12.10.2022 11:01:08
Georg
... jetzt Karl-Heinz, bin jedesmal wieder baff über die schnelle Hilfe. Wäre ich nie draufgekommen von allein Gruß Georg
AW: .body über Excel....perfekt es geht
12.10.2022 11:10:57
volti
Danke für die positive Rückmeldung, Georg 😊
Gruß KH
AW: .body über Excel VBA Code befüllen
12.10.2022 11:41:38
snb
Warum so incredibly aufwändig ?

Private Sub CommandButton1_Click()
With CreateObject("Outlook.Application").CreateItem(0)
.to = "support@gedikomservicedesk.freshservice.com"
.Subject = "Konto Anlage" & "  " & TxtBoxBetreffBPx.Value
.body = Sheets(Sheets.Count).Columns(2).Find("EndeTicket1").Value
.send
End With
End Sub

AW: .body über Excel VBA Code befüllen
12.10.2022 12:13:18
volti
Hi snb,
so wie ich das sehe, wird hier ja nur das Feld mit dem "Suchwort" gefunden und in die Mail als Text gesetzt. Dieses ist obendrein auch noch das "Suchwort" selbst.
Ich glaube nicht, dass das im Sinne des Fragers ist.
Gruß KH
Anzeige
AW: .body über Excel VBA Code befüllen
12.10.2022 14:33:37
snb
Kann man doch selbst einfach anpassen; z.B.

    .body = Sheets(Sheets.Count).Columns(2).Find("EndeTicket1").offset(-1).Value

117 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige