Avatar billede JenZen Novice
15. januar 2009 - 20:52 Der er 3 kommentarer og
1 løsning

sendmail efter oprettet CSV

Hej, jeg har et program der opretter en unik CSV fil hvergang man kører en makro, jeg kunne så godt tænke mig at den hver gang sender den CSV fil som den opretter som vedhæftet til en given e-mail eks. test@test.dk

Er der nogen der kan hjælpe med det ?
Avatar billede komputerdk Mester
19. januar 2009 - 06:07 #1
Excel VBA kan godt klare det.. men

Er det altid den samme excel fil man mailer fra ? (ellers kan det godt give lidt bøvl rent kodemæssigt, da CSV ikke indeholder makroner såvidt vides) / eller er det filer der ligger i en bestemt mappe?

er mailen altid den samme ?
hvem skal afsenderen være (skal den fx. sendes via outlook ? , eller via en SMTP server)
skal filen gemmes ?
skal der sendes mange CSV filer på en gang (til forskellige modtagere)?
er mailens titel / selve teksten altid den samme, eller skal man have mulighed for at skrive nogen selv før den sendes ?



jeg formoder at du sender det via excel ?
Avatar billede JenZen Novice
19. januar 2009 - 07:22 #2
Det er altid den samme excel programmet makroerne kører fra, og csv filen der genereres hedder altid noget unikt da den bliver genereret ved en makro hver gang. Disse filer ligger sig i C:\CSV fil.
Eks. CSV-01-01, CSV-01-02 osv.

Mailen er altid den samme, og den skal helst sendes fra outlook, filen skal gemmes i det omfang den allerede gør.
Der vil kun skulle sendes én csv fil hver gang. E-mailens titel og emne og tekst er også altid den samme.
Avatar billede JenZen Novice
15. juli 2009 - 13:27 #3
Ej løst
Avatar billede komputerdk Mester
16. juli 2009 - 16:39 #4
Vupti, havde ikke lige set dit svar...

prøv dette...



Sub SendCSV()
'http://www.eksperten.dk/spm/859969


' ### til filen
Dim Sti As String
Dim Navn As String
Dim Temp As String
Dim heleNavnet As String

'#### mail delen
Dim MailAdr As String
Dim Emne As String
Dim MailTxt As String

'### alt det andet
Dim WB As Workbook
Dim csvWB As Workbook



Sti = "c:\csv\" 'husk den sidste \ - stien hvor filen skal gemmes
Navn = "CSV-" 'første del af navnet
Temp = Format(Now, "dd-mmm-yy_h-mm-ss") ' sidste del af navnet

heleNavnet = Sti & Navn & Temp & ".CSV"


'skjuler hvad der sker
With Application
        .ScreenUpdating = True
        .EnableEvents = True
End With

'#### her skal du skrive dem du vil sende til
MailAdr = "test@test.dk"
Emne = "CSV fil"
MailTxt = "hejsa - her er filen"




Set WB = ActiveWorkbook 'sætter wb som aktiv fil


WB.SaveAs Filename:=heleNavnet, FileFormat:=xlCSV, CreateBackup:=False  'det er her vi gemmer som CSV

     
' ############# maildelen - tjek evt http://www.rondebruin.nl/sendmail.htm
     
     
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
        .To = MailAdr
        '.CC = ""
        '.BCC = ""
        .Subject = Emne
        .Body = MailTxt
        .Attachments.Add csvWB.FullName
                '.Attachments.Add ("C:\test.txt")  - du kan også bruge stien heleNavnet
        .Send
    End With
    On Error GoTo 0 'ved fejl

    'WB.Close SaveChanges:=False kun hvis den skal gemmes

    Set OutMail = Nothing
    Set OutApp = Nothing

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With

     

End Sub
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