Hallo zusammen,
ich habe aus Excel per VBA einen Bereich in die Zwischenablage kopiert.
Eine Email habe ich auch erstellt und habe per .Body auch Zugriff auf den Inhalt.
Wie füge ich nun per VBA den Inhalt der Zwischenablage da ein?
Als Text soll’s ja nicht sein. Eigentlich nur Strg+c.
Gruß
Ben
Hallo Beri,
ich habe aus Excel per VBA einen Bereich in die Zwischenablage
kopiert.
Zeige bitte mal den Code.
Eine Email habe ich auch erstellt und habe per .Body auch
Zugriff auf den Inhalt.
Wie füge ich nun per VBA den Inhalt der Zwischenablage da ein?
Als Text soll’s ja nicht sein. Eigentlich nur Strg+c.
? Du meinst Strg+V !? Wieso kein Text, willst du Bilder einfügen o.ä.?
Was auch immer du da planst, hilft dir der Hinweis auf getfromclipboard weiter?
Gruß
Reinhard
Hallo Reinhard,
Strg+V natürlich 
Hier ist der Code und bei .Body muss jetzt der Inhalt der Zwischenablage rein.
Er sagt aber „Clipboard“ kennt er nicht.
Übrigens: Excel 2003
Sub Excel_Range_via_Outlook_Senden()
Dim MyMessage As Object, MyOutApp As Object
Range(„A1:F31“).Select
Selection.Copy
'InitializeOutlook = True
Set MyOutApp = CreateObject(„Outlook.Application“)
'Nachrichtenobject erstellen
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = „[email protected]“
.Body =???
.Subject = „TEST“
'Hier wird die Mail gleich in den Postausgang gelegt
'.Send
'Hier wird die temporäre Datei wieder gelöscht
End With
MyOutApp.Quit
Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub
Danke schon mal
Ben
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi Beri,
Hier ist der Code und bei .Body muss jetzt der Inhalt der
Zwischenablage rein.
Er sagt aber „Clipboard“ kennt er nicht.
es heisst getfromclipboard bzw putinclipboard.
Übrigens: Excel 2003
Der obere Code stammt von Hans Herber, ich habe nur Winzigkeiten angepasst. Ich habe .Display auf XL2000 getestet.
.Send mußt du testen
Den zweiten Code (Autor mir unbekannt) konnte ich nicht testen da XL2000 kein Mailenvelope usw. kennt.
Kannst ja bitte mal Feedback geben ob der zweite Code in XL2003 klappt.
Option Explicit
'
Private Sub SendEMail()
Dim oOL As Object
Dim oOLMsg As Object
Dim oOLRecip As Object
Dim oOLAttach As Object
Dim iRow As Integer, iCol As Integer
Dim sTxt As String
iRow = 1
iCol = 1
With Worksheets("Tabelle1")
Do Until iRow = 32
Do Until iCol = 7
sTxt = sTxt & .Cells(iRow, iCol) & Chr(9)
iCol = iCol + 1
Loop
sTxt = WorksheetFunction.Trim(sTxt) & vbCrLf
iCol = 1
iRow = iRow + 1
Loop
End With
Set oOL = CreateObject("Outlook.Application")
Set oOLMsg = oOL.CreateItem(0)
With oOLMsg
Set oOLRecip = .Recipients.Add("[email protected]")
.Subject = Format(Date, "dd.mm.yy") & " - " & Format(Time, "hh:mm:ss")
.cc = "[email protected]"
.bcc = "[email protected]"
.Body = sTxt
.Importance = 1
For Each oOLRecip In .Recipients
oOLRecip.Resolve
Next
.display
'.Send
End With
Set oOL = Nothing
End Sub
'
Sub Send\_OriginalRange\_from\_Excel()
'Getestet unter Office XP
'Ohne Select geht es nicht :smile:)
Range("A1:C9").Select
'Das anzeigen der Envelope Commandbar ist unabdingbar
ActiveWorkbook.EnvelopeVisible = True
'Nun werden die Adressen vergeben
With ActiveSheet.MailEnvelope
.Introduction = "Das ist der Einleitungstext." & vbCrLf & "mit einer zweiten Zeile"
.Item.To = "[email protected]"
.Item.Subject = "Die aktuellen Daten"
.Item.display
End With
End Sub
Gruß
Reinhard