Avatar billede heine11 Nybegynder
14. december 2006 - 21:42 Der er 3 kommentarer

Makro i Excel / Outlook

Jeg har brug for at lave en makro i Excel der gør følgende:

1.: Gem mit exeldokument i en sti - Det har jeg løst sådan her !

Sub Makro1()
'
' Makro1 Makro
' Makro indspillet 14-12-2006 af Jacob Skjødt Møller
'

'
    ChDir "c:\"
    ActiveWorkbook.SaveAs Filename:="c:\" & Range("C6").Value & ".xls", _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
End Sub

2. Overfører excel-filen til Outlook, hvor den vedhæfter den en ny mail, der åbnes automatisk.

3. Adr. felt udfyldes automatisk

4. Emnefelt udfyldes automatisk med filnavn

5. Posten afsendes i Outlook

Hvis det kan lade sig gøre vil det være helt kanon !

Den forkromede løsning vil så være at den enkelte excel-fil hedder noget unikt - fx. at der kobles fortløbende nr. ind i filnavnet. Så jeg kan gennem excel-filerne fortløbende, men stadig overføre den aktuelle fil med makroen
Avatar billede supertekst Ekspert
15. december 2006 - 10:45 #1
Har oprettet filen basis.xls i en mappe - koden ligger i VBA/Ark1
I samme mappe er der oprettet en undermappemed navnet xlsArkiv - her gemmes de filer, som tilpasses på grundlag af "basis" og efterfølgende sendes via Outlook.
Filerne lagres i xlsArkiv under det valgte filnavn fra C6 - indledende med et løbenr, der beregnes på basis af antallet af filer i xlsArkiv. Derfor må disse filer ikke slettes - eller princippet skal laves om - hvilket også kan lade sig gøre - f.eks. via en tekstfil, der indeholder løbenr.

Kode ser således ud:

Dim xSti, filNr, filNavn
Const gemMappe = "xlsArkiv\"                        'mappe til filer, der sendes - ligger i samme mappe som basis.xls
Sub KlarTilOutLook()
    findSti
    filNr = findNæsteFilnr
    gemFilen
   
    sendFilen "Modtager@mail.dk", filNavn, ActiveWorkbook.FullName      'modtager@mail.dk skal erstattes af ........
   
Rem Luk filen
    ActiveWorkbook.Close
End Sub
Private Sub findSti()
    xSti = ActiveWorkbook.Path
    If Right(xSti, 1) <> "\" Then
        xSti = xSti + "\"
    End If
End Sub
Private Function findNæsteFilnr()                  'tæller antal filer i mappen
    Dim fs, f, f1, fc, s, antalFiler
    antalFiler = 0
   
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(xSti + gemMappe)
    Set fc = f.Files
    For Each f1 In fc
        antalFiler = antalFiler + 1
    Next
   
    findNæsteFilnr = antalFiler + 1
End Function
Private Sub gemFilen()
Dim xFilnr
    xFilnr = fireTegn(CStr(filNr))                          'udvid filnr til 4 tegn
   
    filNavn = Range("C6").Value
   
    ActiveWorkbook.SaveAs Filename:=xSti + gemMappe + "Fil_" + xFilnr + "_" & filNavn + ".xls", _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
Private Function fireTegn(nr)
    While Len(nr) < 4
        nr = "0" + nr
    Wend
   
    fireTegn = nr
End Function
Public Sub sendFilen(modtager, emne, vedhft)
Dim mailApp, Namespace, nyMail, att
        Set mailApp = CreateObject("Outlook.Application")
        Set Namespace = mailApp.GetNamespace("MAPI")
   
        Set nyMail = mailApp.CreateItem(olMailItem)
        Set nymod = nyMail.Recipients
        nymod.Add modtager
       
        Set att = nyMail.Attachments
        att.Add vedhft
        nyMail.Subject = emne
   
        nyMail.Display                            'visning af mail
        nyMail.Send                                'send mailen
End Sub
Avatar billede heine11 Nybegynder
11. januar 2007 - 07:38 #2
Mange tak - hvordan accepterer jeg så du får point ?
Avatar billede supertekst Ekspert
11. januar 2007 - 09:29 #3
Selv tak - du får et svar og så accepterer du blot dette.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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