Avatar billede mfynbo Juniormester
05. november 2012 - 15:18 Der er 5 kommentarer

Macro til automatisk excel filer til values

Hej Eksperter,
Jeg søger en macro, som kan lave mange filer til values filer - flade filer, hvor der ikke er nogle formler eller referencer.

Nogen der kan hjælpe?

Mvh.
Mfynbo
Avatar billede supertekst Ekspert
05. november 2012 - 15:52 #1
Avatar billede mfynbo Juniormester
07. november 2012 - 10:10 #2
Tak for svar,
Som jeg skrev til det andet indlæg, vil jeg gerne, hvis macroen kan lave alle filer en en given mappe om til values.

Mvh.
Mfynbo
Avatar billede supertekst Ekspert
07. november 2012 - 10:19 #3
Hej Mfynbo

Ja - det skulle ikke være et større problem at lægge et niveau mere ind (windows mappe)

Er der også tale om flere ark pr. projektmappe - do. det henviste eksempel?

Mvh
Supertekst
Avatar billede mfynbo Juniormester
07. november 2012 - 10:34 #4
Det lyder godt.
Ja, der er flere ark pr. projektmappe (workbook) og det kan svinge.
Avatar billede supertekst Ekspert
07. november 2012 - 13:38 #5
Kode indsættes separat xlsm-fil / Thisworkbook

Const mappeNavn = "C:\Users\peter\Desktop\Eksp.MFynbo\testMappe\" <--justeres
Public Sub konverterFormler()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Application.EnableEvents = False

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(mappeNavn)
    Set fc = f.Files
    For Each f1 In fc
        filnavn = LCase(f1.Name)
           
        Workbooks.Open Filename:=mappeNavn & filnavn
        With ActiveWorkbook
            behandLingAfFilArk
            .Save
            .Close
        End With
    Next

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    Application.EnableEvents = True
   
    MsgBox "konvertering udført"
End Sub
Private Sub behandLingAfFilArk()
    For Each sh In ActiveWorkbook.Sheets
        formelTilVærdi sh.Name
    Next sh
End Sub
Sub formelTilVærdi(ark)
    ActiveWorkbook.Sheets(ark).Activate
   
    ar = ActiveCell.Cells(xlLastCell).Row
    ak = ActiveCell.Cells(xlLastCell).Column
   
    Set r = Range(Cells(1, 1), Cells(ar, ak))
        For Each cc In r.Cells
            If cc.HasFormula = True Then
                værdi = cc.Value
                cc.Clear
                cc.Value = værdi
            End If
    Next
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

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