03. april 2008 - 09:24Der er
18 kommentarer og 1 løsning
Udskrive vedhæfter filer
Jeg modtag fra sammen afsender mange maile med vedhæfter pdf filer som jeg skal udskrive ca. 100 stk. om dage kan man udskrive aller vedhæfter filer fra den sammen afsender på engang. det vil spare mig masser tid. tak
Når der bliveer lidt luft mellem kundeopgaverne - så kan jeg måske se på det. Spørgsmål: Er der flere filer vedhæftet den enkelte mail fra den bestemte afsender?
Det helt fint. nej det er altid en vedhæfte pr. mail jeg vil udskriv kun vedhæfte fil ikke selv mail. alle mail fra denne afsender det nye og gammel komme ind i mappe som hedder invoice i outlook.
Har konstrueret en model, der overføre de enkelte filer til en mappe. Heri kan alle filer markeres og udskrives via højreklik - kan det anvendes? Har p.t. problemer med at udskrive direkte fra VBA-koden - men finder måske en udvej.
Rem I VBA skal der sættes en reference til Microsoft OutLook. I VBA-vinduet / Tools / References / Rem Microsoft OutLook 11.0 Object Library (11.0) er 2003-versionen) Rem Kør nedenstående makro (gennemgåEmails) - med Alt+F8 når Word-dokumentet er åbnet. Rem Der kan installeres et lille "værktøj" så man undgår at Outlook kommer med en meddelelse hver gang
Rem Ellers send en mail til: pb@supertekst-it.dk - så returnerer jeg min fil Rem ============================================================================================== Const afSender = "UC4KYO" Const udskriftsMappe = "C:\TilUdskrift\" 'Kan ajourføres - mappe til opsamling af pdf-filer Rem ==================================== Public Sub gennemgåEmails() Dim mailApp, Namespace, indbakke, m, vf Set mailApp = CreateObject("Outlook.Application") Set Namespace = mailApp.GetNamespace("MAPI") Set indbakke = Namespace.GetDefaultFolder(olFolderInbox)
If indbakke.Items.Count > 0 Then For m = 1 To indbakke.Items.Count
Rem Test om ønskede afsender If indbakke.Items(m).SenderName = afSender Then
Rem er der 1 vedhæftet fil If indbakke.Items(m).Attachments.Count = 1 Then vf = LCase(indbakke.Items(m).Attachments(1).FileName)
Rem er mailen "Unread" - d.v.s. ikke behandlet If indbakke.Items(m).UnRead = True Then
Rem Gem filen filen f.eks. i UdskriftsMappe (se Const øverst) indbakke.Items(m).Attachments(1).SaveAsFile udskriftsMappe + vf
Rem sæt mail = "Read" (behandlet) indbakke.Items(m).UnRead = False End If End If End If Next m End If End Sub
hej jeg skriv et kommentar, men den er det ikke. når men her den
når jeg køre koden vil den kun kopier hvis mail findes i indbakken, ikke fra undermappen invoice. men i mappen tiludskrift finde da kun en PDF file hvis jeg lægger mail tilbage i indbakken og køre kode.
da kommer også en fejl efter jeg køre kode.men den flytter pdf filen til mappen men kun en file desvære .fejl "Object doesn't support this property or method"
Invoice-mappen har jeg overset - bliver tilføjet! Hedder PDF-filerne noget forskelligt? Når fejlmeldingen optræder - kommer der en Debug-knap? - Hvis Ja - klik på denne og fortæl hvilken linie, der fejlmeldes. - Hvis Nej - prøv at køre koden stepvis med F8 og fortæl hvornår fejlen opstår.
Rem VERSION 2 Rem ========= Rem I VBA skal der sættes en reference til Microsoft OutLook. I VBA-vinduet / Tools / References / Rem Microsoft OutLook 11.0 Object Library (11.0) er 2003-versionen) Rem Kør nedenstående makro (gennemgåEmails) - med Alt+F8 når Word-dokumentet er åbnet. Rem Der kan installeres et lille "værktøj" så man undgår at Outlook kommer med en meddelelse hver gang
Rem Ellers send en mail til: pb@supertekst-it.dk - så returnerer jeg min fil Rem ============================================================================================== Const afSender = "UC4KYO" Const udskriftsMappe = "C:\TilUdskrift\" 'Kan ajourføres - mappe til opsamling af pdf-filer Rem ==================================== Public Sub gennemgåEmails() Dim mailApp, Namespace, inbox, indbakke, m, vf Dim lbnr
Set mailApp = CreateObject("Outlook.Application") Set Namespace = mailApp.GetNamespace("MAPI") Set inbox = Namespace.GetDefaultFolder(olFolderInbox) Set indbakke = inbox.Folders("Invoice")
Rem Find antal filer i udskriftsmappen lbnr = findAntalFiler + 1
If indbakke.Items.Count > 0 Then For m = 1 To indbakke.Items.Count
Rem er der 1 vedhæftet fil If indbakke.Items(m).Attachments.Count = 1 Then vf = LCase(indbakke.Items(m).Attachments(1).FileName)
Rem er mailen "Unread" - d.v.s. ikke behandlet - OBS - kan evt. elimineres *) If indbakke.Items(m).UnRead = True Then '*)
Rem Gem filen filen f.eks. i UdskriftsMappe (se Const øverst) indbakke.Items(m).Attachments(1).SaveAsFile udskriftsMappe + CStr(lbnr) + "_" + vf lbnr = lbnr + 1
Rem sæt mail = "Read" (behandlet) indbakke.Items(m).UnRead = False End If '*) End If Next m End If End Sub Private Function findAntalFiler() Dim fs, f, f1, fc, s Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(udskriftsMappe) Set fc = f.Files findAntalFiler = fc.Count End Function
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.