Avatar billede HrPhilipsen Nybegynder
06. november 2012 - 12:48 Der er 9 kommentarer og
1 løsning

Compile Errorr

Hej
Jeg har fået et problem, når jeg vil printe en mail fra Outlook (2010). I stedet for at printe mailen, så åbnes Vba med en "Compile error" hvor der står "Constants, fixed-length strings, arrays, user-defined types, and Declare statements not allowed as Public members of an object module" Klikker jeg på OK så kan jeg fortsætte med mit print.
Jeg er ikke den store haj på dette område, så jeg har brug for lidt hjælp her.

/Allan
Avatar billede supertekst Ekspert
06. november 2012 - 13:03 #1
Har du mulighed for at vise koden?
Avatar billede HrPhilipsen Nybegynder
06. november 2012 - 13:05 #2
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub LoopThroughFolder()

On Error GoTo HandleErr

    'Variable til at finde ønsket postkasse og mappe
    Dim olMailboxName As String
    Dim olMailboxFolder As String
    olMailboxName = "xxxxxx" 'Angiv navnet på den aktuelle postkasse her
    olMailboxFolder = "xxxxxx" 'Angiv navnet på den aktuelle mappe her
   
    If olMailboxName = "" Or olMailboxFolder = "" Then
        MsgBox ("Enten er der ikke angivet nogen postkasse eller ikke angivet nogen mappe, som der skal slås op i. Angiv disse indstillinger i toppen af makroen og forsøg igen.")
        Exit Sub
    End If
   
    'Det aktuelle Outlook objekt gemmes
    Dim olCurApp As Outlook.Application
    Set olCurApp = CreateObject("Outlook.Application")

    'Variable til at søge gennem Outlooks mappestruktur oprettes
    Dim olFolder As Outlook.Folder
    Dim olSubFolder As Outlook.Folder
    Dim olMailItem As Outlook.MailItem
    Dim olItemsColl As Items
   
    'Variable til at gemme og udskrive vedhæftninger
    Dim olAtmt As Attachment
    Dim strFileName As String

    'Hele Outlooks mappestruktur søges igennem for at finde den ønskede postkasse samt den ønskede mappe.
    For Each olFolder In olCurApp.Session.Folders
       
        'Finder postkasse
        If olFolder.Name = olMailboxName Then
            For Each olSubFolder In olFolder.Folders
                'Finder mappe i postkasse
                If olSubFolder.Name = olMailboxFolder Then
                    'Gemmer items i variabel til sortering
                    Set olItemsColl = olSubFolder.Items
                    'Sorterer items i variabel
                    olItemsColl.Sort "[Subject]"
                    'Løber alle items igennem i variabel
                    For Each olMailItem In olItemsColl
                        'Løber alle vedhæftninger igennem for items fundet
                        For Each olAtmt In olMailItem.Attachments
                            'Gemmer vedhæftninger
                            strFileName = "C:\Temp\" & olAtmt.FileName
                            olAtmt.SaveAsFile strFileName
                            'Udskriver gemte vedhæftninger
                            Shell """C:\Program\Adobe\Acrobat 11.0\Acrobat\AcroRd32.exe"" /p /h """ + strFileName + """", vbHide
                            'Vent 2 sekund
                            Sleep (2000)
   
                        Next
                    Next

                  GoTo ExitHere
                End If
            Next
        End If
       
    Next
   
   
ExitHere:
  Set olCurApp = Nothing
  Exit Sub

' Error handling block added by VBA Code Commenter and Error Handler Add-In. DO NOT EDIT this block of code.
' Automatic error handler last updated at 30. oktober 2008 14:30:08
HandleErr:
  Select Case Err.Number
    Case Else
      MsgBox "Error " & Err.Number & ": " & Err.Description, vbCritical, "modTDS.LoopThroughFolder"
  End Select
' End Error handling block.
   
   
End Sub

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

End Sub
Avatar billede supertekst Ekspert
06. november 2012 - 13:07 #3
Hvor er den viste kode placeret?

Er der mere end denne?
Avatar billede HrPhilipsen Nybegynder
06. november 2012 - 13:10 #4
Koden er placeret under Modules (project1)og jeg har kun denne ene makro
Avatar billede supertekst Ekspert
06. november 2012 - 13:10 #5
Ok
Avatar billede supertekst Ekspert
06. november 2012 - 13:33 #6
Anvender 2007 - får ikke nogen "Compile Error" - et forsøg:

Prøve at sætte ' (kommentar mærke) foran:

'Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
..
..
..
'    Sleep (2000)

det kunne måske skyldes dette - i givet fald skal der så indlægges en anden form for pause.
Avatar billede HrPhilipsen Nybegynder
06. november 2012 - 13:41 #7
For Dælen da, du er genial. Det virkede og nu printes mails som de skal :)
Smider du lige et svar, og tusind tak for hjælpen
Avatar billede supertekst Ekspert
06. november 2012 - 13:49 #8
Tak for de pæne ord - og fint at det var det..

Selv tak - skulle det være en anden gang - arbejder ikke med andet.
Avatar billede HrPhilipsen Nybegynder
06. november 2012 - 13:54 #9
Det er ikke utænkeligt :)God dag
Avatar billede supertekst Ekspert
06. november 2012 - 13:57 #10
I lige måde..
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester