Avatar billede bejstrup Juniormester
25. november 2016 - 14:02 Der er 7 kommentarer og
1 løsning

Send regneark, hvis betingelse er opfyldt

Jeg skal have Excel til at sende mit regneark som en vedhæftet fil, til den mail adresse der står i celle A1, hvis celle c5 er større end 10. Hvilken VBA kode kan jeg anvende ?
Avatar billede jkrons Professor
25. november 2016 - 14:30 #1
Det kommer lidt an på hvilket mailprogram, du bruger.
Avatar billede bejstrup Juniormester
25. november 2016 - 14:32 #2
Jeg bruger Outlook
Avatar billede jkrons Professor
25. november 2016 - 14:36 #3
Du kan se en løsning med Outlook hos Ron de Bruin

http://www.rondebruin.nl/win/s1/outlook/amail1.htm

Tilføj lige efter Dim sætningerne

If Range("c5").Value <= then exit sub

Under .to skal du rette til Range("A1").value. Det hele skal se sådan ud:

Sub Mail_workbook_Outlook_1()
'Working in Excel 2000-2016
'This example send the last saved version of the Activeworkbook
'For Tips see: http://www.rondebruin.nl/win/winmail/Outlook/tips.htm
    Dim OutApp As Object
    Dim OutMail As Object

    If Range("c5").Value <= 10 Then Exit Sub

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

    On Error Resume Next
    With OutMail
        .to = Range("a1").value
        .CC = ""
        .BCC = ""
        .Subject = "This is the Subject line"
        .Body = "Hi there"
        .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
Avatar billede bejstrup Juniormester
25. november 2016 - 14:51 #4
Der sker ingenting, og jeg får ingen fejl. Mystisk
Jeg har ændret "send" til "Display", men det sker der heller ikke noget ved.
Avatar billede bejstrup Juniormester
25. november 2016 - 22:09 #5
Jeg skal aktivere macro manuelt. Den starter ikke automatisk når celle C5 er større end 10. Når jeg aktiverer den manuelt, fungerer den som den skal.

Macroen skal køre hver gang indholdet i en tilfældig celle ændres, så vil jeg tro det virker. Hvordan får jeg den så til det :-)
Avatar billede jkrons Professor
25. november 2016 - 23:08 #6
Hvis den skal køre automatisk, kal den ændres lidt. I så fald skal den lægges arkets kodemodul (højreklik på arkfanen og vælg Vis kode), og se ud som følger:


Private Sub Worksheet_Change(ByVal Target As Range)
    Dim OutApp As Object
    Dim OutMail As Object
   
    If Not Intersect(Target, Range("c5")) Is Nothing Then
        If Target.Value <= 10 Then Exit Sub

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

            On Error Resume Next
            With OutMail
                .to = Range("a1").Value
                .CC = ""
                .BCC = ""
                .Subject = "This is the Subject line"
                .Body = "Hi there"
                .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 If
End Sub
Avatar billede bejstrup Juniormester
26. november 2016 - 09:34 #7
Det virker, takker :-)
Avatar billede jkrons Professor
27. november 2016 - 17:45 #8
Velbekomme...
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

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