Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBA - Nachdem verschicken der E-Mail das Objekt ausdrucken

Frage Entwicklung VB for Applications

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

04.09.2009, aktualisiert 14:12 Uhr, 6826 Aufrufe, 1 Kommentar

Hallo zusammen,
wir haben bei uns im Einsatz Outlook 2003. Nun ist es so, dass wir einige Arbeitsplätze haben, die relevante & wichtige E-Mail empfangen/verschicken.

Im Moment ist es so, dass wenn die Mitarbeiterin eine E-Mail verschickt hat, in den Ordner "Gesendete Objekte" geht und dort das neuste Element öffnet und ausdruckt. Das sind pro Arbeitsschritt 5 Klicks und einige Sekunden was verloren geht. Rechnet man das auf 1 Jahr und für insgesamt 35 Mitarbeiter kommt eine kl. Summe raus. Jedoch für die Leistung ist das viel.

Nun schwebt mir ein VBA-Script vor, dass nach jedem Senden kurz nachfragt, ob das Element in den "Gesendeten Objekten" ausgedruckt werden soll. Die Abfrage per MessageBox ist eigentlich kein Problem:
01.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) 
02.
 
03.
    intAntwort = MsgBox("E-Mail Ausdrucken?", vbOKCancel) 
04.
     
05.
    Select Case intAntwort 
06.
        Case vbOK 
07.
            Item.PrintOut 
08.
        Case vbChancel 
09.
            'nix 
10.
    End Select 
11.
 
12.
End Sub
Jedoch die Abfrage des neusten Objekts in "Gesendete Objekte" bringt mich an meine Grenzen von VBA. Die Initialisierung der Objekte sieht so aus:
01.
Dim Mails As Outlook.Items 
02.
    Dim Mail As Object 
03.
     
04.
     
05.
    'Outlook als Object erstellen 
06.
    Set myOlApp = CreateObject("Outlook.Application") 
07.
    Set myNameSpace = myOlApp.GetNamespace("MAPI") 
08.
     
09.
    Set FolderUserDir = FolderUserInbox.Parent.Folders("Gesendete Objekte") 
10.
....
Wie kann ich jetzt die Abfrage steuern, dass er mir die neuste E-Mail in eine Variable speichert und danach ausdruckt?


Viele Grüße,
Dani
Mitglied: Dani
06.09.2009 um 10:46 Uhr
Moin,
hier nun die Lösung:
01.
Option Explicit 
02.
 
03.
'Deklarationen 
04.
'zuerst für Outlook selbst und den Namespace... ohne die beiden geht nichts. 
05.
Dim MyOLApp As Application 
06.
Dim myNameSpace As NameSpace 
07.
 
08.
Public Sub PrintLastMail_GeOrd() 
09.
    'Deklarationen 
10.
    Dim FolderUserDir As MAPIFolder 
11.
    Dim FolderInbox As MAPIFolder 
12.
    Dim Mails As Outlook.Items 
13.
    Dim Mail As Object 
14.
     
15.
     
16.
    'Outlook als Object erstellen 
17.
    Set MyOLApp = CreateObject("Outlook.Application") 
18.
    Set myNameSpace = MyOLApp.GetNamespace("MAPI") 
19.
     
20.
    'Hier wird definiert, auf welches Outlookpostfach das Script zugreifen soll. 
21.
    'Da es vorkommt, dass ein User mal mehere Postfächer im Outlookprofil haben kann 
22.
    Set FolderInbox = myNameSpace.GetDefaultFolder(olFolderInbox) 
23.
    Set FolderUserDir = FolderInbox.Parent.Folders("Gesendete Objekte") 
24.
    
25.
    'Liest die E-Mails in ein Array 
26.
    Set Mails = FolderUserDir.Items 
27.
     
28.
    'die "neuste" bzw. "letzte" E-Mail wird ausgelesen. 
29.
    'Achtung: Ist abhängig von der Sortiermethode!! 
30.
    Set Mail = Mails.GetLast 
31.
     
32.
    'E-Mail wird ausgedruckt 
33.
    Mail.PrintOut 
34.
     
35.
End Sub
zum krönenen Abschluss könnt ihr das Marko in die Symbolleiste einfügen.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
Aus VBA E-Mail und HTML Dokument erstellen lassen (3)

Frage von Pago159 zum Thema VB for Applications ...

VB for Applications
gelöst VBA Outlook - Mail delivery system (5)

Frage von carolin.zelda zum Thema VB for Applications ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...