• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Fout in code? Verzenden xlsm met vba en afsluiten

Status
Niet open voor verdere reacties.

JKlerks

Gebruiker
Lid geworden
15 aug 2017
Berichten
54
Goedemorgen allemaal,

ik gebruik onderstaande code om een mail met een bestand te verzenden. (ik heb hier al eerder een vraag over gesteld, maar de oplossingen passen niet helemaal). Het te verzenden bestand is een tijdelijk bestand dat uit het hoofdbestand met macro's komt. Met een loop wil ik in totaal 35 bestanden naar unieke ontvangers sturen.

Mijn "probleem" is nu nog dat wanneer ik verschillende macro's achter elkaar laat lopen, de mail NIET verzonden wordt, terwijl wanneer ik alleen deze code gebruik het WEL werkt. Ik heb zelf het idee dat het probleem in tijd zit. Het laden van de email met bijlage duurt even terwijl de macro het bestand dan mogelijk al heeft afgesloten.

Ik gebruik deze code:
Code:
Sub VERZENDEN_BESTAND()
    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
        .to = Range("AH1")
        .CC = ""
        .BCC = ""
        .Subject = "Dashboard met stand per heden"
        .Body = "Beste " & Range("ai1").Value & "," & vbNewLine & vbNewLine & _
              "Hierbij ontvangt u het dashboard per vandaag." & vbNewLine & vbNewLine & _
              "" & vbNewLine & _
              "" & vbNewLine & vbNewLine & _
              "Mocht u nog vragen hebben over dit dashboard, dan kunt u uiteraard contact opnemen." & vbNewLine & vbNewLine & _
              "Met vriendelijke groet," & vbNewLine & vbNewLine & _
              "J Klerks" & vbNewLine & _
              "" & vbNewLine & _
              "+31(0)6 "
'         .Body = ""
        .Attachments.Add ActiveWorkbook.FullName
        'You can add other files also like this
        '.Attachments.Add ("C:\test.txt")
        .send   'or use .Display
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

welke idealiter wordt gevolgd door :
Code:
ActiveWorkbook.Close True
Application.DisplayAlerts = True
LEEGMAKEN_VESTIGINGSTABS

NB display alerts is ter voorkoming van de foutmelding dat het bestand met de naam al bestaat (het is een dagelijks terugkomend bestand)
NB2 het leegmaken van de vestigingstabs is in het hoofdbestand en gebeurt dus niet in het te verzenden bestand.

Ter volledigheid: het tijdelijke bestand wordt gecreëerd door de volgende code (die ik al via helpmij heb mogen ontvangen...)
Code:
ThisWorkbook.Sheets(Array("DASHBOARD", "1", "2", "3", "4", "5", "6", "7", "8", "9")).Copy


Heeft iemand een idee waar het fout gaat bij het verzenden?
 
Om dat goed na te kunnen gaan zal je je document moeten plaatsen, of een relevant voorbeeld er van.
Daarnaast is het mij een volslagen raadsel waarom zovelen hun Sub beginnen met On Error Resume Next.
Dat lost echt geen fouten op. Het zorgt er alleen maar voor dat je ze niet ziet.
 
Voorbeeldbestand

Goedemorgen Edmoor,

zie bijgaand het uitgeklede bestand dat wordt aangemaakt, opgeslagen en moet worden verzonden.

Alle cijfermatige tabs zijn normaliter verborgen.

Bekijk bijlage DASHBOARD.xlsm

De code voor het verzenden heb ik in het verleden via de website van Ron de Bruin opgepikt. Aangezien het voor dat doeleinde werkte, heb ik de code niet meer gewijzigd. Het hoofdbestand maakt obv cel AE1 telkens een nieuw bestand aan dat aan de unieke ontvanger (middels vertikaal zoeken van deze code in range AB:AD) moet worden verzonden.

Dank alvast
 
Dat document bevat geen code en heeft allerlei externe koppelingen waardoor deze als voorbeeld onbruikbaar is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan