Foutmelding na invoer vba programma

  • Onderwerp starter Onderwerp starter tepke
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

tepke

Gebruiker
Lid geworden
3 okt 2004
Berichten
237
hallo

Ik heb thuis een stukje vba getest in mijn outlook (geheel probleemloos ) en deze mee genomen naar mijn werk om daar te gebruiken. het systeem werkt daar maar nufoutrmelding.png krijg ik bij elke mail die ik stuur een foutmelding zij in de bijlage. op mijn werk gebruik ik een exchange server, thuis gaat het via hotmail

de VBA code is als volgend en staat bij mij in "this outlook session"
heb ik iets verkeerd gebruikt in het programma?



Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set Items = objNS.GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub Items_ItemAdd(ByVal item As Object)

On Error GoTo ErrorHandler

'deze VBA is geschreven voor email die we krijgen van leveranciers met xml orderbevestigingen
'--------------------------------------------------------------------------------------------
'path aanpassen voor locatie waar de bijlage moet komen te staan
'in de map postvak_in moet een submap komen logistix_gelezen
'catagorie maken in outlook "Logistix_gelezen"
'sendername moeten de email adressen komen waarvan de bevestiging mail komt


'Only act if it's a MailItem
Dim Msg As Outlook.MailItem
If TypeName(item) = "MailItem" Then
Set Msg = item

'Change variables to match need. Comment or delete any part unnecessary.
'Msg.SenderName in die naam van iemand
If (Msg.SenderEmailAddress = "m###-d#e-w####@live.nl") And _
(Msg.Attachments.Count >= 1) Then

'Set folder to save in.
Dim olDestFldr As Outlook.MAPIFolder
Dim myAttachments As Outlook.Attachments
Dim Att As String

'location to save in. Can be root drive or mapped network drive.
Const attPath As String = "C:\test\"


' save attachment
Set myAttachments = item.Attachments
Att = myAttachments.item(1).DisplayName
myAttachments.item(1).SaveAsFile attPath & Att

' mark as read
Msg.UnRead = False

'Set the flag_catagory icon!! (place first flage catagory "logistix_gelezen" in outlook)
item.Categories = "Logistix_gelezen"
item.Save

' move received mail in other mailbox
Dim myNameSpace As Outlook.NameSpace
Dim myInbox As Outlook.Folder
Dim FolderJacob As Outlook.Folder

Set myNameSpace = Application.GetNamespace("MAPI")
Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
Set FolderLogistix = myInbox.Folders("Logistix_gelezen")

item.Move FolderLogistix

' messagebox on screen to tell that there has been an procedure finnished
MsgBox "Orderbevestiging is opgeslagen door outlook en gereed voor import logistix", vbInformation



End If
End If

ProgramExit:
Exit Sub

ErrorHandler:
MsgBox Err.Number & " - " & Err.Description
Resume ProgramExit
End Sub
 
Laatst bewerkt:
Als je de On Error eruit haalt kun je zien welke regel die fout veroorzaakt. Haal je mail adres er even uit hier. Spambots zijn daar gek op ;)
Plaats ook de code in code-tags.
 
code tags

ga ik proberen

ik ben geen programmeur maar wel geïnteresseerd, wat bedoel je met code tags?
 
het programma geeft een fout bij msg.attachment.count >= 1.
is raar voor mij want ik stuur een mail naar iemand die niets met dit script te maken heeft, script gebruik ik voor inkomende post als die van een bepaald adres afkomt moet hij de bijlage ergens neerzetten. en niet bij post die ik weg stuur daar moet het script niet op werken
 
Deze werkt bij mij in ieder geval prima. Doet wat de bedoeling is een geen foutmelding bij het versturen van een mail.

Code:
Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
    Dim olApp As Outlook.Application
    Dim objNS As Outlook.NameSpace
    Set olApp = Outlook.Application
    Set objNS = olApp.GetNamespace("MAPI")
    Set Items = objNS.GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub Items_ItemAdd(ByVal item As Object)

    On Error GoTo ErrorHandler
    
    'deze VBA is geschreven voor email die we krijgen van leveranciers met xml orderbevestigingen
    '--------------------------------------------------------------------------------------------
    'path aanpassen voor locatie waar de bijlage moet komen te staan
    'in de map postvak_in moet een submap komen logistix_gelezen
    'catagorie maken in outlook "Logistix_gelezen"
    'sendername moeten de email adressen komen waarvan de bevestiging mail komt
    
    
    'Only act if it's a MailItem
    Dim Msg As Outlook.MailItem
    If TypeName(item) = "MailItem" Then
        Set Msg = item
        
        'Change variables to match need. Comment or delete any part unnecessary.
        'Msg.SenderName in die naam van iemand
        If (Msg.SenderEmailAddress = "iemand@eenbedrijf.nl") And _
            (Msg.Attachments.Count >= 1) Then
            
            'Set folder to save in.
            Dim olDestFldr As Outlook.MAPIFolder
            Dim myAttachments As Outlook.Attachments
            Dim Att As String
            
            'location to save in. Can be root drive or mapped network drive.
            Const attPath As String = "C:\test\"
            
            ' save attachment
            Set myAttachments = item.Attachments
            Att = myAttachments.item(1).DisplayName
            myAttachments.item(1).SaveAsFile attPath & Att
            
            ' mark as read
            Msg.UnRead = False
            
            'Set the flag_catagory icon!! (place first flage catagory "logistix_gelezen" in outlook)
            item.Categories = "Logistix_gelezen"
            item.Save
            
            ' move received mail in other mailbox
            Dim myNameSpace As Outlook.NameSpace
            Dim myInbox As Outlook.Folder
            
            Set myNameSpace = Application.GetNamespace("MAPI")
            Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
            Set FolderLogistix = myInbox.Folders("Logistix_gelezen")
            
            item.Move FolderLogistix
            
            ' messagebox on screen to tell that there has been an procedure finnished
            MsgBox "Orderbevestiging is opgeslagen door outlook en gereed voor import logistix", vbInformation
            
         End If
    End If
    
ProgramExit:
    Exit Sub
    
ErrorHandler:
    MsgBox Err.Number & " - " & Err.Description
    Resume ProgramExit
End Sub

Met codetags beoel ik dat je bij het plaatsen van code begint met:
[ CODE]

dan je code

en vervolgens:
[ /CODE]

Maar dan dus zonder de spaties achter het [-teken.
 
Laatst bewerkt:
ik ben geen programmeur maar wel geïnteresseerd, wat bedoel je met code tags?
Code maak je op met de knop CODE (te vinden als je berichtjes maakt via <Ga geavanceerd>. Jij hebt nu de Quote knop gebruikt om de code op te maken, maar die maakt er visueel een zooitje van. Daarom hebben we code liever opgemaakt als Code, zoals het voorbeeldje van Edmoor.
Zelf zet ik de tags er zelf wel voor en achter, dus je typt dan aan het begin van de code: [ /code ] en aan het eind: [ /code ]. Maar dan zonder de spaties, die staan er nu omdat je anders de codes niet ziet, maar de tekst opgemaakt als :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan