![]() |
|
|||||||
| MS Outlook Outlook . viel mehr als "nur" ein Mail-Programm. |
![]() |
|
|
Thread Tools | Display Modes |
|
|
#16 |
|
Registered User
Board-Frischling
Join Date: Aug 2006
Location: Bochum
Posts: 7
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Hallo zusammen,
ich hätte eine Frage zu dieser zeile im oben stehen den Prog. Private Const ATT_PATH As String = "D:\outlook\Attachement", ich möchte dass die Anlagen in einem einheitlichen Netzwerkpfad gespeichert werden also... einen Ort im Netzwerk nennen wo sie automatisch gespeichert werden............. und nicht jedes mal einen Ordner anlegen, und die Zeile immer ändern "D:\outlook\Attachement", ich hoffe die Frage ist verständlich. Danke Gruß. |
|
|
|
| Sponsored Links | |
|
|
#17 |
|
Registered User
Board-Frischling
Join Date: Aug 2006
Location: Bochum
Posts: 7
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Hallo zusammen,
ich hätte eine Frage zu dieser zeile im oben stehenden Prog. Private Const ATT_PATH As String = "D:\outlook\Attachement", ich möchte, dass die Anlagen in einem einheitlichen Netzwerkpfad gespeichert werden also... einen Ort im Netzwerk nennen wo sie automatisch gespeichert werden............. und nicht jedes mal einen Ordner auf jedem Rechner nennen, und diese Zeile immer ändern "D:\outlook\Attachement"...? Ich hoffe die Frage ist verständlich. Danke Gruß. |
|
|
|
|
|
#18 |
|
CO-*****
![]() Senior Member (Board-Inventar)
Join Date: Aug 2001
Location: In Deutschland
Posts: 2.657
Abgegebene Danke: 1
Erhielt 2 Danke für 2 Beiträge
|
sorry, aber das verstehe ich nicht so ganz...
Du kannst doch den Netzwerkpfad angeben, wo Du den Ordner \\serverleon\shares\Userfiles\PDF (zum Bleistift )anlegst. Alle User speichern dann auf dem Netzwerk-Share. Allerdings verlangsamt dieser Prozess Deinen Ausdruck, da Du die Daten hin- und herschaufelst, bevor Du die in den Spooler bekommst... es sei denn, dass Du sowieso über den Server-Spooler auf einem Netzwerk-Drucker die Dinger druckst... Andererseits ging es im letzten Teil dieses Threads darum lediglich eine temoräre Datei zu erstellen, die dann für den Ausdruck benutzt wird. Theoretisch könnte man es noch so vervollkommnen, dass die temp. Datei auch wieder automatisch gelöscht wird. Bei mir wird dies über eine Batch beim Systemstart automatisch wieder gelöscht. @echo off del C:\TMP\*.pdf /Q /F Die Attribute hierfür sind: /F Erzwingt das Löschen schreibgeschützter Dateien. /S Löscht alle Dateien in allen Unterverzeichnissen. /Q Keine Rückfrage bei Benutzung globaler Platzhalter. Last edited by Pitter on 29-08-2006 at 23:25 |
|
|
|
|
|
#19 |
|
Registered User
Board-Frischling
Join Date: Aug 2006
Location: Bochum
Posts: 7
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Hallo zusammen
ohne eure Hilfe komme ich nicht weiter Bei eigehenden Emails möchte ich eine Meldung mit dem Betreff und Name des Absenders, das Problem ist: wenn ich 5 emails von verschiedenen Absendern bekomme, dann erscheint bei den nächsten MsgBoxs immer noch der Absender und Betreff der ersten email.... wie kann ich dieses beseitigen so dass ich der Name des Absenders und Betreff der betreffenden email erscheint!? Option Explicit Private Const SHOWMAXIMIZED = 3& Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ .... Private Sub Application_NewMail() ... Dim Repense Set objPosteingang = ... For Each objNewMail In objPosteingang.Items With objNewMail If .UnRead = True Then For i = 1 To .Attachments.Count If LCase(Right(.Attachments(i).FileName, 4)) = ".pdf" Then !!!!Beim Eingang einer neuen Mail erscheint eine MSGBOX mit Absender & Betreff der Mail. Repense = msgBox("Sie haben eine neue E-Mail erhalten." & Chr(13) & Chr(13) & _ "Absender:" & Chr(9) & posteingan.Items(i).SenderName & Chr(13) & _ "Betreff:" & Chr(9) & Chr(9) & posteingang.Items(i).Subject & Chr(13) & _ "Eingangsordner:" & Chr(9) & posteingang.Name & Chr(13) & Chr(13) & _ "Möchten Sie diese E-Mail jetzt lesen?", 4 + 256 + 64 + 4096, "NEUE EMAIL") If Repense = vbYes Then Product = "C:\xx\xx" & .Attachments.Item(i).FileName .Attachments.Item(i).SaveAsFile Product ShellExecute 0, "print", Product, "", "", SHOWMAXIMIZED End If End If Next i End If End With Next objNewMail End Sub Und das mit i anstatt 1 "bst" hat leider nicht funktionniert.. Gruß |
|
|
|
|
|
#20 |
|
Excel Moderator
![]() Senior Member (Board-Inventar)
Join Date: Oct 2004
Location: Ilsfeld
Posts: 2.610
Abgegebene Danke: 16
Erhielt 183 Danke für 180 Beiträge
|
Hallo leon79,
Hoppsala. Du rufst Die MsgBox ja in der Schleife der Attachements auf. Da gehört sie nicht hin. Versuch's mal so. Und beachte die Punkte vor den Eigenschaften: .SenderName bedeutet daß sich SenderName auf den zuvorigen WITH bezieht, hier also auf objNewMail. Übrigens, hab's wiederum nicht getestet. Und, gehe sowas mal im Einzelschrittmodus (F8) im VBA durch und schaue Dir nach jedem Schritt die entsprechenden Variablen an. cu, Bernd -- Code:
Option Explicit
Private Const SHOWMAXIMIZED = 3&
'Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( .... )
Private Sub Application_NewMail()
'...
Dim Repense
Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
For Each objNewMail In objPosteingang.Items
With objNewMail
If .UnRead = True Then
'!!!!Beim Eingang einer neuen Mail erscheint eine MSGBOX mit Absender & Betreff der Mail.
Repense = MsgBox("Sie haben eine neue E-Mail erhalten." & Chr(13) & Chr(13) & _
"Absender:" & Chr(9) & .SenderName & Chr(13) & _
"Betreff:" & Chr(9) & Chr(9) & .Subject & Chr(13) & _
"Eingangsordner:" & Chr(9) & .Name & Chr(13) & Chr(13) & _
"Möchten Sie diese E-Mail jetzt lesen?", 4 + 256 + 64 + 4096, "NEUE EMAIL")
If Repense = vbYes Then
' ...
End If
For i = 1 To .Attachments.Count
If LCase(Right(.Attachments(i).Filename, 4)) = ".pdf" Then
Product = "C:\xx\xx" & .Attachments.Item(i).Filename
.Attachments.Item(i).SaveAsFile Product
ShellExecute 0, "print", Product, "", "", SHOWMAXIMIZED
End If
Next i
End If
End With
Next objNewMail
End Sub
Last edited by bst on 27-01-2009 at 11:53 Reason: HTML-Tags entfernt |
|
|
|
|
|
#21 |
|
CO-*****
![]() Senior Member (Board-Inventar)
Join Date: Aug 2001
Location: In Deutschland
Posts: 2.657
Abgegebene Danke: 1
Erhielt 2 Danke für 2 Beiträge
|
Hallo bst,
ich habe eben Rückmeldung von einer unserer Filialen bekommen...Bei dem PC, auf dem als Einziges noch Office 2k installiert ist, funktionert weder das Speichern, noch das Drucken... Gut ich habe es selbst nicht installiert, aber ich habe telefonischen Support gegeben, was wohin muss und was geändet werden muss... Eine idee, woran das liegen könnte? |
|
|
|
|
|
#22 |
|
Excel Moderator
![]() Senior Member (Board-Inventar)
Join Date: Oct 2004
Location: Ilsfeld
Posts: 2.610
Abgegebene Danke: 16
Erhielt 183 Danke für 180 Beiträge
|
Hallo Pitter,
nein, ich habe momentan kein OL 2000 zum Testen zur Verfügung. Gibt es denn dort Application_NewMail überhaupt ? Im Zweifelssfall mache einfach ein paar Debug.Prints rein und laß Dir dann das Ergebnis aus dem VBA-Direktfenster durchgeben / zumailen. Du könntest mir aber auch den Code senden. Ich würde das dann @Home ausprobieren, da habe ich Office 2000 drauf. Habe voraussichtlich aber erst am Wochenende Zeit dazu. cu, Bernd |
|
|
|
|
|
#23 |
|
CO-*****
![]() Senior Member (Board-Inventar)
Join Date: Aug 2001
Location: In Deutschland
Posts: 2.657
Abgegebene Danke: 1
Erhielt 2 Danke für 2 Beiträge
|
Hat Zeit... Da ich gerade Urlaub habe, ist das Ganze nicht so wichtig.
Ich komme eh erst in 2 Wochen an den Rechner dran, um das mal zu probieren. Mit den Debuggern hatte ich mir schoin gedacht und auch schon mal gestern Abend reingeschoben, aber da sitzen nur ein paar Leute, die keine Ahnung von der Materie haben... nutzt also nix, da jetzt die App. rüber zu pushen... Bis ich da Ergebnisse habe, die ich gebrauchen kann.....
|
|
|
|
|
|
#24 |
|
Registered User
Board-Frischling
Join Date: Aug 2006
Location: Bochum
Posts: 7
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Hallo bst,
es hat auch leider nicht funktionniert.. !!Gruss. leon79 |
|
|
|
|
|
#25 |
|
Excel Moderator
![]() Senior Member (Board-Inventar)
Join Date: Oct 2004
Location: Ilsfeld
Posts: 2.610
Abgegebene Danke: 16
Erhielt 183 Danke für 180 Beiträge
|
Hallo Leon,
was ganau hat nicht funktioniert ? Und, schicke mal bitte den gesamten von Dir benutzen Code mit, ich schau's mir dann mal in Ruhe an. cu, Bernd |
|
|
|
|
|
#26 |
|
Registered User
Board-Frischling
Join Date: Aug 2006
Location: Bochum
Posts: 7
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Hallo
Hallo bst,
ich habe den code so geändert, wie es mir in der letzten Nachricht beschrieben hast, es hat nicht geklappt... und die Idee ist so: angenommen habe ich 8 Emails mit Anlagen (.pdf-Datei)gekriegt, dann erscheinen 8 Meldungen hintereinander, alle mit dem Namen des Absenders und Betreff der ersten Email, obwohl die anderen 7 Emails von verschiedenen absendern, und natürlich mit einem ganz anderen Betreff... aber trotzdem erscheint bei allen MsgBoxen der selbe Absender und Betreff (nämlich der ersten Email) Denn bevor ich die Anlage einer Email speichere und dann ausdrucke, muss ich erstmal wissen von wem die Email ist, und was beinhaltet die Anlage. Ich schicke dir den gesamten von mit benutzten code als Anlage (.doc).. ich denke die MsgBox wird nur einmal innerhalb der For-Schleife aufgerufen, ich weiß nicht woran es liegt.. danke Gruß.leon79 |
|
|
|
|
|
#27 |
|
Excel Moderator
![]() Senior Member (Board-Inventar)
Join Date: Oct 2004
Location: Ilsfeld
Posts: 2.610
Abgegebene Danke: 16
Erhielt 183 Danke für 180 Beiträge
|
Hallo Leon79,
- gehe da mal im Einzelschrittmodus mit F8 durch und schaue Dir selber genau an was passiert 1. "objNewMail.Name" gibt es nicht, das hatte ich übersehen, nimm hier besser mal objPosteingang.Name. 2. Wenn Repense = vbYes ist, greift Du vor der Schleife ! auf .Attachments.Item(i).FileName zu. Das kann nicht gehen, da i da noch 0 ist. 3. Du 'liest' die Mail ja nirgendwo, sondern druckst ggf. ihre Anhänge aus. Und dabei wird das Gelesen auch nicht gesetzt. D.h., bei der nächsten neuen Mail kommen die 'alten' Teile natürlich wieder. Versuche das vielleicht mal so. cu, Bernd -- Code:
Option Explicit
Private Const SHOWMAXIMIZED = 3&
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hWnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long _
) As Long
Private Sub Application_NewMail()
Dim objPosteingang As MAPIFolder
Dim objNewMail As MailItem
Dim i As Integer
Dim Product As String
Dim Repense
Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
For Each objNewMail In objPosteingang.Items
With objNewMail
If .UnRead = True Then
'Beim Eingang einer neuen Mail erscheint eine MSGBOX mit Absender & Betreff der Mail.
Repense = MsgBox("Sie haben eine neue E-Mail erhalten." & Chr(13) & Chr(13) & _
"Absender:" & Chr(9) & .SenderName & Chr(13) & _
"Betreff:" & Chr(9) & Chr(9) & .Subject & Chr(13) & _
"Eingangsordner:" & Chr(9) & objPosteingang.Name & Chr(13) & Chr(13) & _
"Möchten Sie diese E-Mail jetzt drucken?", 4 + 256 + 64 + 4096, "NEUE EMAIL")
If Repense = vbYes Then
For i = 1 To .Attachments.Count
If LCase(Right(.Attachments(i).Filename, 4)) = ".pdf" Then
Product = "D:\TEST\" & .Attachments.Item(i).Filename
.Attachments.Item(i).SaveAsFile Product
ShellExecute 0, "print", Product, "", "", SHOWMAXIMIZED
End If
Next i
.UnRead = False
End If
End If
End With
Next objNewMail
End Sub
Last edited by bst on 27-01-2009 at 11:57 Reason: HTML Tags entfernt |
|
|
|
|
|
#28 |
|
Registered User
Join Date: Jan 2009
Location: Delmenhorst
Posts: 4
Abgegebene Danke: 2
Erhielt 0 Danke für 0 Beiträge
|
Hallo zusammen,
ich habe den folgenden Code von bst bzw. Pitter übernommen funktioniert auch wunderbar. Danke dafür! Nun wäre es super wenn man diesen Code noch um eine Abfrage ergänzen könnte welche nur Mails von einem bestimmtem Empfänger bzw. mit bestimmtem Betreff druckt & speichert. Zudem wäre es super wenn die Dateien pro Tag in einem speraten Ordner (Ordnername = Datum) anstatt alle direkt in P:\Attachments\ abzulegen. Also z.B. P:\Attachments\27012009\dateiname.pdf Kann mir da jemand helfen? PHP Code:
Last edited by nke on 27-01-2009 at 11:31 |
|
|
|
|
|
#29 | ||
|
Excel Moderator
![]() Senior Member (Board-Inventar)
Join Date: Oct 2004
Location: Ilsfeld
Posts: 2.610
Abgegebene Danke: 16
Erhielt 183 Danke für 180 Beiträge
|
Hi nke,
Quote:
Quote:
Code:
Dim ATT_PATH As String ATT_PATH = "P:\Attachments\" & Format(Date, "YYYYMMDD") & "\" |
||
|
|
|
| Folgender Benutzer sagt Danke zu bst für den nützlichen Beitrag: | nke (27-01-2009) |
|
|
#30 |
|
Registered User
Join Date: Jan 2009
Location: Delmenhorst
Posts: 4
Abgegebene Danke: 2
Erhielt 0 Danke für 0 Beiträge
|
Hallo Bernd,
danke für die schnelle Antwort! Eingabe dafür nunja z.B. alle Mails von nke@test.de mit dem Betreff "Lieferschein" sollen gedruckt und gespeichert werden. Alle anderen Mails nicht. Zum ATT_PATH, wo genau muss deine Zeile denn hin? Die Const muss ja weg, nur wo soll ich die Dim einfügen? An der gleichen Stelle geht nicht bekomm ich nen Fehler. Danke + Gruß, Nils |
|
|
|
| Sponsored Links | |
![]() |
| Thread Tools | |
| Display Modes | |
|
|