maxsal
Goto Top

Outlook Makro zur Ablage gesendeter Mails im Posteingang

etwas seltsamer Fall, da es schon funktioniert hat...

Ich habe in outlook ein VBA-Makro, dass mir die gesendeten Mails automatisch im Posteingang speichert. Damit verliere ich nicht den Überblick was schon beantwortet ist etc, da dort einfach alle "offenen Fälle" liegen.

Da wir in verschiedenen Teams auch gemeinsame email-Fächer haben, will ich dass mit anderen Absendern gesendete Mails in den jeweiligen Postfächen abgelegt werden. Diese Postfächer haben alle auch einen Ordner "Posteingang".

Hier der relevante Teil des Codes:

'als Standard werden alle Mail im Posteingang des Standard-Postfachs abgelegt - das klappt  
    Set Item.SaveSentMessageFolder = Outlook.Session.GetDefaultFolder(olFolderInbox)
'wenn "senden von" genutzt wird, den Posteingang des entsprechenden Kontos wählen:  
    If Item.SentOnBehalfOfName <> "" Then Set Item.SaveSentMessageFolder = GetFolder(Item.SentOnBehalfOfName & "\posteingang")  


hier noch die getfolder-Methode, die auch ohne Fehler durchläuft:
Public Function GetFolder(strFolderPath As String) As MAPIFolder
  ' strFolderPath needs to be something like  
  '   "Public Folders\All Public Folders\Company\Sales" or  
  '   "Personal Folders\Inbox\My Folder"  

  Dim objApp As Outlook.Application
  Dim objNS As Outlook.NameSpace
  Dim colFolders As Outlook.Folders
  Dim objFolder As Outlook.MAPIFolder
  Dim arrFolders() As String
  Dim i As Long
 ' On Error Resume Next  

  strFolderPath = Replace(strFolderPath, "/", "\")  
  arrFolders() = Split(strFolderPath, "\")  
  Set objApp = Application
  Set objNS = objApp.GetNamespace("MAPI")  
  Set objFolder = objNS.Folders.Item(arrFolders(0))
  If Not objFolder Is Nothing Then
    For i = 1 To UBound(arrFolders)
      Set colFolders = objFolder.Folders
      Set objFolder = Nothing
      Set objFolder = colFolders.Item(arrFolders(i))
      If objFolder Is Nothing Then
        Exit For
      End If
    Next
  End If

  Set GetFolder = objFolder
  Set colFolders = Nothing
  Set objNS = Nothing
  Set objApp = Nothing
End Function

Ich habe dann sogar war reinprogrammiert, das mir vor dem verschicken noch den Ablageordner in den Text des Mals schreibt, und das hier:
If Mid(Item.Subject, 1, 4) = "test" Then  
    Item.HTMLBody = "Ordner: " & Item.SaveSentMessageFolder.FolderPath & _  
    "<br> SentOnBehalfOfName: " & Item.SentOnBehalfOfName  
End If

führt zu folgendem Text:
Ordner: \\testfirma Gmbh\Posteingang
SentOnBehalfOfName: testfirma Gmbh

Aber: Es funktioniert einfach nicht. Wie gesagt am alten Computer hat alles erstklassig funktioniert, der war weitgehend ident nur nicht so schnell face-wink (aktuell: WIn7/64bit, Office 2010 32bit; vorher alles in 32 bit).

Wäre toll wenn jemand einen Fehler findet!
Danke
Max

Content-ID: 195614

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

Ausgedruckt am: 23.11.2024 um 02:11 Uhr

Pjordorf
Pjordorf 10.12.2012 um 21:33:13 Uhr
Goto Top
Hallo "Outlook Makro zur Ablage....",

Zitat von @maxsal:
Ich habe in outlook ein VBA-Makro, dass mir die gesendeten Mails automatisch im Posteingang speichert.
Ooch, wie niedlichface-smile

Hier der relevante Teil des Codes:
Dir ist schon klar das wir den besser Lesen könnten wenn dieser in entsprechende Code Tags verpackt ist? Wie? Formatierungen in den Beiträgen reicht schon.

Aber: Es funktioniert einfach nicht.
Na was für ein Aussagekräftige und eindeutige Fehlermeldung. Da kann ja jeder sofort erkennen das es nicht geht. Ist doch logisch, der Fehler steht sitzt da doch klar vor unsface-smile Mal im ernst, wie stellst du dir jetzt unsere Fehlersuche und behebung dergleichen für dein Problem vor? Erwartest du wirklich das wir solange herumtesten bis wir auch die Fehlermeldung "Es funktioniert einfach icht" erhalten?

Wie gesagt am alten Computer hat alles
Ja, und bevor ich das Fassbier austrank war das fass auch noch voll. Man, was für Vergleiche ziehst du hier ab?

Wäre toll wenn jemand einen Fehler findet!
Darf ich den dann behalten? face-smile

Gruß,
Peter
maxsal
maxsal 10.12.2012 um 21:44:05 Uhr
Goto Top
danke für den Hinweis mit dem Code.

die restlichen dummen und unötigen Kommentare hättest Du Dir sparen können, bringen mich nicht weiter. Wenn es eine fehlerrmeldung geben würde, hätte ich die gepostet. Es gibt keine Fehlermeldung, tut aber auch nicht das gewünschte.

Morgen beantworte doch bitte keine Postings nach Deiner täglich größer werdenden Ration Fassbier. Es ist nunmal so, dass der idente Code am alten Computer funktioniert hat.
Pjordorf
Pjordorf 10.12.2012 um 22:42:11 Uhr
Goto Top
Hallo,

Zitat von @maxsal:
die restlichen dummen und unötigen Kommentare hättest Du Dir sparen können, bringen mich nicht weiter.
Sollten sie auch nicht! Du lieferst uns ja nicht alles was wir brauchen um dir zu helfen.

Es gibt keine Fehlermeldung
OK.

tut aber auch nicht das gewünschte.
Jetzt sollten wir doch langsam von zu Lesen bekommen (oder auch Bilder sehen) was denn das gewünschte sein soll.

Es ist nunmal so, dass der idente Code am alten Computer funktioniert hat.
Joa. Und jetzt aber nicht mehr am neuen Computer!

Was hat sich zwischen den Computern geändert?
Sind die Vorrausetzungen für ein korrektes abarbeiten von Makros gegeben?
Was passiert beim manuellen Aufruf des Makros (Alt + F8)?
Wie wird dein Makro normalerweise aufgerufen?
Was passiert wenn das Makro im Einzelschritt abgearbeitet wird?
An welcher Stelle hängt es dann bzw. was passiert oder passiert eben nicht in der betreffenden Makrozeile (wir sagen dazu Programmzeile) wenn diese ausgeführt wird?

Excel und VBA Makros bzw. VBA Editor (Microsoft Visual Basic for Applications - ) und Einzelschrittmodus zum Schrittweisen abarbeiten eines Programms kennst du ja, oder? Alt + F11 oder Alt + F8, und dann im Makro F8...

Gruß,
Peter

PS. Quellcode der funktioniert "getfolder-Methode, die auch ohne Fehler durchläuft:" hilft uns nicht dein Fehler zu finden face-smile
maxsal
maxsal 13.12.2012 um 15:22:24 Uhr
Goto Top
sorry für die Verzögerung, war/bin im Stress...
Zitat von @Pjordorf:
Jetzt sollten wir doch langsam von zu Lesen bekommen (oder auch Bilder sehen) was denn das gewünschte sein soll.
Siehe hier;:
Zitat von @maxsal:
Da wir in verschiedenen Teams auch gemeinsame email-Fächer haben, will ich dass mit anderen Absendern gesendete Mails in den jeweiligen Postfächen abgelegt werden.



Zitat von @Pjordorf:
Joa. Und jetzt aber nicht mehr am neuen Computer!
Was hat sich zwischen den Computern geändert?
Siehe hier:
Zitat von @maxsal:
Wie gesagt am alten Computer hat alles erstklassig funktioniert, der war weitgehend ident nur
nicht so schnell face-wink (aktuell: WIn7/64bit, Office 2010 32bit; vorher alles in 32 bit).
Der neue hat mehr RAM, mehr Festplatten, aber das wesentlich ist doch schon gesagt, oder?
Zitat von @Pjordorf:
Sind die Vorrausetzungen für ein korrektes abarbeiten von Makros gegeben?
Ja, es gibt andere Makros in Outlook die fehlerfrei funktionieren. Auch dieses Makro lauft ja an sich (und ohne Fehlermeldung) durch, nur dass eben hier:
Zitat von @maxsal:
'als Standard werden alle Mail im Posteingang des Standard-Postfachs abgelegt - das klappt
Set Item.SaveSentMessageFolder = Outlook.Session.GetDefaultFolder(olFolderInbox)
'wenn "senden von" genutzt wird, den Posteingang des entsprechenden Kontos wählen:
If Item.SentOnBehalfOfName <> "" Then Set Item.SaveSentMessageFolder = GetFolder
Zwar auch in der zweiten Zeile die „SaveSentMessageFolder“-Eigenschaft korrekt gesetzt wird (kann später ja ausgelesen werden, wenn man es z.B. im Einzelschrittmodus macht, was ich sehr oft getan habe), aber das Mail dann dennoch im „defaultFolder“ (laut erster Zeile) abgelegt wird.

Zitat von @Pjordorf:
Was passiert beim manuellen Aufruf des Makros (Alt + F8)?
Wie wird dein Makro normalerweise aufgerufen?
Was passiert wenn das Makro im Einzelschritt abgearbeitet wird?
An welcher Stelle hängt es dann bzw. was passiert oder passiert eben nicht in der betreffenden Makrozeile (wir sagen dazu
Programmzeile) wenn diese ausgeführt wird?
Wie oben schon erwähnt: es bleibt nirgends hängen, kommt keine Fehlermeldung; im Einzelschrittmodus ist durch Überwachung der item-Eigenschaften ach prüfbar, dass der korrekte Folder dort steht; genutzt wird dennoch ein anderer Folder.

Danke für Deine Bemühungen!