romy0907
Goto Top

Vba Outlook Betreff Datum - Absender - Empfänger

Hallo liebe Community,

ich bin noch sehr neu im Gebiet vba und benötige daher eure Hilfe - es ist nicht immer leicht sich im Dschungel der vba-Programmierung zurecht zu finden face-wink

Ich möchte mittels eines Makros automatisch die Betreffzeile in einer E-Mail verändern. Es soll Datum - Absender(nur Nachname) - Empfänger(nur Nachname)- Betrefftext angezeigt werden.
Nun bin ich soweit, dass ich Datum - Absender - Betrefftext hinbekomme, scheitere aber am Empfänger. Wie definiert dich die Variable?

Mein Makro bisher:

Public Sub InsertDate()

Dim objItem As Object ' Aktuelles Element
Dim strDispSender As String
Dim i As Long

Set objItem = Outlook.ActiveInspector.CurrentItem

i = InStr(1, objItem.SenderName, ",")
If (i > 0) Then
strDispSender = Left(objItem.SenderName, i - 1)
Else
strDispSender = objItem.SenderName
End If

' [alt] objItem.Subject = Format(Date, "yyyy-MM-dd") & " - " & objItem.Subject
objItem.Subject = Format(objItem.ReceivedTime, "yyyy-MM-dd") & " - " & strDispSender & " - " & objItem.Subject

End Sub

Ich wäre über jede Hilfe dankbar wie ich den Empfänger (nur Nachname) da noch mit einbaue!

Darüber hinaus bin ich über weitere Hinweise dankbar, falls euch an dem Makro etwas auffällt.

Schon einmal vielen Dank im Voraus!

Viele Grüße

Romy

Content-Key: 341237

Url: https://administrator.de/contentid/341237

Printed on: April 19, 2024 at 04:04 o'clock

Member: emeriks
emeriks Jun 21, 2017 at 16:30:34 (UTC)
Goto Top
Hi,
MailItem.Recipients-Eigenschaft (Outlook)
Auch wenn nur ein Empfänger drin stehen sollte, so ist die Recipients-Eigenschaft doch eine Auflistung.

  Dim R as Recipient
  dim RecipientsText as string

  for each R in objItem.Recipients
    RecipientsText = RecipientsText & R.Address
  next

E.
Member: Romy0907
Romy0907 Jun 22, 2017 at 08:42:43 (UTC)
Goto Top
Hallo emeriks,

vielen Dank für deine Antwort!

Leider funktioniert es noch nicht. Ich hab den Makro jetzt folgendermaßen geändert:

Public Sub InsertDate()


Dim objItem As Object ' Aktuelles Element
Dim strDispSender As String
Dim i As Long

Dim R As Recipient
Dim RecipientsText As String

For Each R In objItem.Recipients
RecipientsText = RecipientsText & R.Address
Next

Set objItem = Outlook.ActiveInspector.CurrentItem

i = InStr(1, objItem.SenderName, ",")
If (i > 0) Then
strDispSender = Left(objItem.SenderName, i - 1)
Else
strDispSender = objItem.SenderName
End If

' [alt] objItem.Subject = Format(Date, "yyyy-MM-dd") & " - " & objItem.Subject
objItem.Subject = Format(objItem.ReceivedTime, "yyyy-MM-dd") & " - " & strDispSender & " - " & RecipientsText & objItem.Subject

End Sub


Könntest du mir da vielleicht noch einmal weiterhelfen?
Der Debugger zeigt mir den Fehler bei "For Each R In objItem.Recipients"

Schon einmal vielen Dank im Voraus!

VG Romy
Member: emeriks
emeriks Jun 22, 2017 at 09:24:41 (UTC)
Goto Top
Benutze bitte Code-Tags! (Im Editor links "</>")
Member: emeriks
emeriks Jun 22, 2017 at 09:29:09 (UTC)
Goto Top
Der Debugger zeigt mir den Fehler bei "For Each R In objItem.Recipients"
Aha. Und welchen?
Member: emeriks
emeriks Jun 22, 2017 updated at 09:31:48 (UTC)
Goto Top
Du hast vergessen
Set objItem = Outlook.ActiveInspector.CurrentItem

Edit:
Nee nicht vergessen. Aber zu spät. Diese Zeile muss natürlich vor dem "For Each .."
Member: Romy0907
Romy0907 Jun 22, 2017 at 11:01:56 (UTC)
Goto Top
Danke für deine schnellen Antworten!!face-smile

Soweit gibt es keine Fehlermeldungen mehr face-smile

Allerdings wird nicht der Empfängername, sondern andere Infos des Empfängers angezeigt.

Mache ich das dann wie beim Sendernamen?

i = InStr(1, objItem.SenderName, ",")  
 If (i > 0) Then
 strDispSender = Left(objItem.SenderName, i - 1)
 Else
 strDispSender = objItem.SenderName
 End If

Danke nochmal!

VG Romy
Member: emeriks
emeriks Jun 22, 2017 at 11:14:31 (UTC)
Goto Top
Eh, Du, ich habe meine Bohrmaschine gerade nkcz zur Hand, sorry.
, sondern andere Infos des Empfängers angezeigt.
Prima. Und welche?

Na dann nimm eben
R.Name
wenn Dir das mehr hilft.

Hast Du Dir den von mir genannten Link überhaupt angesehen?