Avatar billede chrisch Nybegynder
21. september 2015 - 10:09 Der er 2 kommentarer og
1 løsning

Makro til indlæsning ombytning af kolonner, sortering og eksport af data

Hej,

Jeg har en lidt specifik problemstilling.

Jeg vil gerne have en makro der kan:
- Indlæse en fil man selv skal vælge når man aktivere makroen.
- Sortere kolonne (A:E) efter dato i kolonne A med ældste først.
- Indsætte ny linie øverst med tekste "A1=Dato, A2=Rente, A3=Tekst, A4=Beløb, A5=Saldo"
- Bytte rundt på kolonne B og C
- Eksportere kolonne A:E til nyt regneark

Kan det lade sig gøre i en makro.

På forhånd tak.
21. september 2015 - 10:14 #1
Ja, naturligvis kan man det :)
Send mig et eksempel på en af de filer du ønsker håndteret, så kan jeg kigge på det.
thor@scientdata.dk
21. september 2015 - 10:58 #2
Et skud fra hoften

Sub DanFil()
    Dim file As String
    Dim i As Integer
    i = Application.FileDialog(msoFileDialogOpen).Show
    If i <> 0 Then
        file = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
        Dim wkbImport As Workbook
        Set wkbImport = Workbooks.Open(file, local:=True)
       
        'Sortering
        With wkbImport.Worksheets(1).Sort
            .SortFields.Clear
            .SortFields.Add Key:=Range("A1", Range("A1").End(xlDown)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SetRange Range("A1", Range("E1").End(xlDown))
            .Header = False
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
   
        'Overskrift
        With wkbImport.Worksheets(1)
            .Range("A1").EntireRow.Insert
            .Range("A1").Value = "Dato"
            .Range("B1").Value = "Rente"
            .Range("C1").Value = "Tekst"
            .Range("D1").Value = "Beløb"
            .Range("E1").Value = "Saldo"
        End With
       
        'Byt B og C
        With wkbImport.Worksheets(1)
            .Range("D1").EntireColumn.Insert
            .Range("B1").EntireColumn.Copy Destination:=wkbImport.Worksheets(1).Range("D1")
            .Range("B1").EntireColumn.Delete
        End With
       
        'Gem
        i = Application.FileDialog(msoFileDialogSaveAs).Show
        If i <> 0 Then
            wkbImport.SaveAs Application.FileDialog(msoFileDialogSaveAs).SelectedItems(1)
        End If
    End If
End Sub
Avatar billede chrisch Nybegynder
21. september 2015 - 11:04 #3
Mange tak :)

Det er helt perfekt.
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



IT-JOB

Udviklings- og Forenklingsstyrelsen

Udvikler til procesapplikationer

De Nationale Geologiske Undersøgelser for Danmark og Grønland (GEUS)

IT-systemadministrator søges til GEUS