Avatar billede madsus Nybegynder
16. marts 2009 - 15:09 Der er 6 kommentarer og
1 løsning

Automatisk afsendelse af Excel fil

Hej,

Jeg er totalt blank på makro og VBA. Jeg håber, at I kan hjælpe mig med at lave en automatisk funktion, der vedhæfter en Excel fil en mail med to foruddefineret mailadresser. Hvis det kan laves med en "knap" funktion inde i Excel filen vil det være optimalt!

Pft.

Mads
Avatar billede jkrons Professor
17. marts 2009 - 00:36 #1
Løæg denne kode på wen kontrolelementknap

Private Sub CommandButton1_Click()
Dim rec(2) As String
    rec(1) = "modt1@post.nu"
    rec(2) = "modt2@post.dk"

    On Error GoTo errormsg:
    ActiveWorkbook.SendMail Recipients:=rec(), Subject:="Vedhæftet ark"
    Exit Sub

errormsg:
    MsgBox Err.Description
End Sub

Ret de to modtagere til de korekte adresser.
Avatar billede madsus Nybegynder
17. marts 2009 - 21:27 #2
Det virker bare - TAK!

Jeg har lige et tillægsspørgsmål. Hvis jeg har undladt at udfylde en celle, skal jeg gerne have en meddelelse (popup) om at cellen SKAL være udfyldt for at kunne sende mailen. Som det sidste vil det være super, hvis jeg kan få forudfyldt "emne" feltet i mailen. Jeg har et stykke kode fra en anden Excel fil, men jeg kan ikke få det til at virke, når jeg tilretter den - ved ikke om det kan give inspiration til nogle...

Pft

Hilsner
Mads

Sub SendMail_Postcenter()

Dim Følgeseddelnr As String
Dim A As String

Range("Nr").Select
    If ActiveCell.Value = "" Then
        Følgeseddelnr = InputBox("Indtast følgeseddelnummer:", "Følgeseddel")
        If Følgeseddelnr = "" Then
            A = MsgBox("Du har ikke indtastet følgeseddelnummer!", vbOK, "Følgeseddel")
            GoTo Sendmail_KHC_annuller
        Else
            Range("Nr").Select
            ActiveCell.Value = Følgeseddelnr
            ActiveWorkbook.Save
        End If
    End If
   
    'PrøveSend til FWR
        'ActiveWorkbook.SendMail Recipients:=("dddddd@post.dk"), Subject:=Range("kunde") & " " & ("E B68")

        ActiveWorkbook.SendMail Recipients:=Range("Opslag"), Subject:=Range("kunde") & ":" & " " & ("E B68")
     
     

Sendmail_KHC_annuller:

Application.ScreenUpdating = False
    Sheets(Array("KopiTilMedsendelse", "KundensKvittering")).Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    Application.ScreenUpdating = True


End Sub
Avatar billede jkrons Professor
18. marts 2009 - 17:35 #3
Prøv med

Private Sub Tk()
    Dim rec(2) As String
    If IsEmpty(Range("A1")) Then
        MsgBox "Du skal udfylde celle A1 før du kan sende mailen"
        Exit Sub
    End If
    rec(1) = "modt1@post.nu"
    rec(2) = "modt2@post.dk"

    On Error GoTo errormsg:
    ActiveWorkbook.SendMail Recipients:=rec(), Subject:="Skriv emnet her"
    Exit Sub

errormsg:
    MsgBox Err.Description
End Sub

TRet A1 til den celle, der skal være udfyldt, ret teksten i meddelelsesboksen, og ret slev teksten til emnet.
Avatar billede madsus Nybegynder
18. marts 2009 - 20:52 #4
Hej jkrons

Tak igen! Jeg skulle lige tilrettet den første linje og så fungerede det bare....

Når jeg nu sidder og fin tænker workflowet, kunne jeg godt tænke mig, at der kommer en popup boks hver gang, inden jeg sender Excel filen med en mail. I denne popup boks skal jeg indtaste følgeseddelnummeret (celle M3), så de indtastet cifre i popup boksen blive placeret i celle M3. Kan du som det sidste hjælpe mig med det?

Kan du eventuelt anbefale en god begynder bog/hjemmeside, da det egentligt kan være rigtig interessant?

Hilsner Mads


Private Sub CommandButton1_Click()
    Dim rec(2) As String
    If IsEmpty(Range("M3")) Then
        MsgBox "Du skal udfylde følgeseddelsnummer inden du kan sende formularen"
        Exit Sub
    End If
    rec(1) = "qqqqq@gmail.com"
    rec(2) = "sssssss@gmail.com"

    On Error GoTo errormsg:
    ActiveWorkbook.SendMail Recipients:=rec(), Subject:="B 68'er til indlevering til Post Danmark"
    Exit Sub

errormsg:
    MsgBox Err.Description
End Sub
Avatar billede jkrons Professor
18. marts 2009 - 22:58 #5
Private Sub CommandButton1_Click()
Dim rec(2) As String
    Range("m3").Value = InputBox("Indtast følgeseddelnummer")
    If IsEmpty(Range("m3")) Then
        MsgBox "Du skal udfylde følgeseddelnummer inden du kan sende formularen"
        Exit Sub
    End If
    rec(1) = "qqqqq@gmail.com"
    rec(2) = "sssssss@gmail.com"

    On Error GoTo errormsg:
    ActiveWorkbook.SendMail Recipients:=rec(), Subject:="B 68'er til indlevering til Post Danmark"
    Exit Sub

errormsg:
    MsgBox Err.Description

End Sub '

Bog: Sharon Podlin, Excel 2003 Programmering med VBA.

Hjemmeside: Du kan starte på min :-)

www.kronsell.net/ExcelProgrammering.htm

Der kommer mere endnu, men der nok til at komme i gang.
Avatar billede madsus Nybegynder
19. marts 2009 - 20:45 #6
Det fungere bare! Tak for dine henvisninger, det vil jeg benytte mig af - det er lid sjovt! :-)

Hvordan tildeler jeg dig egenligt pointene?

Hilsner
Mads
Avatar billede jkrons Professor
19. marts 2009 - 22:31 #7
Jeg svarer, og du accepterer mit svar ;:-)
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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