Avatar billede vifa Novice
07. maj 2012 - 23:02 Der er 33 kommentarer og
1 løsning

Makro til at sortere række

Hej,

Jeg har lavet en makro til at sortere alle mine indtastede værdier efter dato. Det fungere meget fint, men lige så snart jeg tilføjer flere rækker i mit regneark, så er disse ikke inkluderet i min makro, og bliver derfor ikke sorteret.

Jeg kunne selvfølgelig markere alle rækker i regnearket når jeg laver min makro, men jeg har en bundlinje der tæller alle de indtastede værdier sammen, og denne bundlinje skal selvfølgelig ikke være inkluderet.

Kan man på nogen måde måske markere det hele på nær én række ? Eller hvordan løser jeg denne ?
Avatar billede store-morten Ekspert
07. maj 2012 - 23:27 #1
Må vi se din kode ;-)
Avatar billede store-morten Ekspert
07. maj 2012 - 23:49 #2
Står der noget under bundlinjen?
Avatar billede vifa Novice
08. maj 2012 - 18:33 #3
Jeg har ikke noget kode, jeg har bare indspillet en makro på følgende måde:

* 'Indspil ny makro'
* Markeret alle rækker med indhold på nær bundlinjen
* Sorteret efter dato
* Makro slut

Men lige så snart jeg tilføjer flere linjer i regnearket, er disse jo givetvis ikke inkluderet i min makro og bliver derfor heller ikke sorteret.

Nej, der er ikke noget under bundlinjen.
Avatar billede store-morten Ekspert
08. maj 2012 - 18:44 #4
Prøv på en kopi af dit ark:
Sub Makro2()
On Error GoTo Slut
home = ActiveCell.Address
homeArk = ActiveSheet.Name

Application.ScreenUpdating = False

FørSidste = Range("A" & Rows.Count).End(xlUp).Offset(-1, 0).Row

    ActiveWorkbook.Worksheets("Ark1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Ark1").Sort.SortFields.Add Key:=Range("A1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Ark1").Sort
        .SetRange Range("A1:F" & FørSidste) 'ret F til sidste kolonne
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
   
Sheets(homeArk).Select
Range(home).Select

GoTo Slut
Slut:
Application.ScreenUpdating = True
End Sub
Avatar billede vifa Novice
08. maj 2012 - 18:51 #5
Der sker ingenting.
Avatar billede store-morten Ekspert
08. maj 2012 - 18:58 #6
Kopier koden her over.
Tryk alt+F11
Dobbelt klik på det Ark makroen skal virke på.
Tryk ctrl+v og luk på det røde kryds.
Tryk alt+F8 Vælg koden "Makro2" og tryk Afspil.
Avatar billede store-morten Ekspert
08. maj 2012 - 19:04 #7
Husk:
Svar (til løsninger og pointgivning)

Er til løsninger og pointgivning, som der står?

Du, som er spørger, skal bruger Kommentar.
Avatar billede vifa Novice
08. maj 2012 - 19:04 #8
Der sker stadig ingenting..
Avatar billede store-morten Ekspert
08. maj 2012 - 19:09 #9
Hvor har du dine data?

I makroen: A1 til f og ned -nederste.

Skal måske tilpasses?
Avatar billede vifa Novice
08. maj 2012 - 19:22 #10
Avatar billede store-morten Ekspert
08. maj 2012 - 19:34 #11
Dine datoer?

Ved ikke om denne virker med dit format?

Normal dato format: 08-05-2012

Sub Sorter()
On Error GoTo Slut
home = ActiveCell.Address
homeArk = ActiveSheet.Name

Application.ScreenUpdating = False

FørSidste = Range("C" & Rows.Count).End(xlUp).Offset(-1, 0).Row

    ActiveWorkbook.Worksheets("Ark1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Ark1").Sort.SortFields.Add Key:=Range("C9"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Ark1").Sort
        .SetRange Range("C9:J" & FørSidste)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
   
Sheets(homeArk).Select
Range(home).Select

GoTo Slut
Slut:
Application.ScreenUpdating = True
End Sub
Avatar billede store-morten Ekspert
08. maj 2012 - 19:36 #12
Står "Balance" i flettet celler?
Avatar billede vifa Novice
08. maj 2012 - 21:29 #13
Nej, den står ikke i en flettet celle.
Avatar billede store-morten Ekspert
08. maj 2012 - 21:31 #14
Virker det?
Avatar billede vifa Novice
08. maj 2012 - 21:58 #15
Okay det er mærkeligt, jeg tror det virkede første gang. Lige pludselig var det hele sorteret, men nu kan jeg ikke få det til at virke igen :S
Avatar billede vifa Novice
08. maj 2012 - 22:02 #16
Nej, min fejl. Det virkede heller ikke første gang :-)
Avatar billede store-morten Ekspert
08. maj 2012 - 22:03 #17
Hvordan ser din "tilføj" makro ud?

Der skal værer indhold i C15
Avatar billede vifa Novice
08. maj 2012 - 22:07 #18
Min 'Tilføj' makro er den du hjalp mig med at lave forleden, så jeg kan tilføje ekstra rækker..

C15 er en flettet celle, hvis det har noget at sige.
Avatar billede store-morten Ekspert
08. maj 2012 - 22:30 #19
Sådan ;-)

Sub Sorter()
On Error GoTo Slut
home = ActiveCell.Address
homeArk = ActiveSheet.Name

Application.ScreenUpdating = False

FørSidste = Range("C" & Rows.Count).End(xlUp).Offset(-1, 0).Row

    ActiveWorkbook.Worksheets("Ark1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Ark1").Sort.SortFields.Add Key:=Range("C9"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Ark1").Sort
        .SetRange Range("C9:J" & FørSidste)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
   
Sheets(homeArk).Select
Range(home).Select

GoTo Slut
Slut:
Application.ScreenUpdating = True
End Sub


Sub TilføjRækkeHer()
On Error GoTo Slut
home = ActiveCell.Address
homeArk = ActiveSheet.Name

Application.ScreenUpdating = False
'Vælg sidste række i tabel
Range("C" & Rows.Count).End(xlUp).Offset(-1, 0).Select

        Rows(ActiveCell.Row).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Rows(ActiveCell.Row).Offset(-1, 0).Copy
        Rows(ActiveCell.Row).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
       
Sheets(homeArk).Select
Range(home).Select

GoTo Slut
Slut:
Application.ScreenUpdating = True

'kald sorter makro
Call Sorter
End Sub

Se:
http://gupl.dk/679057/
Avatar billede vifa Novice
08. maj 2012 - 22:45 #20
Er det mig der er snotdum, eller er det fordi jeg bruger Office XP at det ikke virker ?
Avatar billede store-morten Ekspert
08. maj 2012 - 23:16 #21
Sub Sorter()
On Error GoTo Slut
home = ActiveCell.Address
homeArk = ActiveSheet.Name

Application.ScreenUpdating = False

FørSidste = Range("C" & Rows.Count).End(xlUp).Offset(-1, 0).Row

Range("C9:J" & FørSidste).Select
    Selection.Sort Key1:=Range("C9"), Order1:=xlAscending,
Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

Sheets(homeArk).Select
Range(home).Select

GoTo Slut
Slut:
Application.ScreenUpdating = True
End Sub


Sub TilføjRækkeHer()
On Error GoTo Slut
home = ActiveCell.Address
homeArk = ActiveSheet.Name

Application.ScreenUpdating = False
'Vælg sidste række i tabel
Range("C" & Rows.Count).End(xlUp).Offset(-1, 0).Select

        Rows(ActiveCell.Row).Insert Shift:=xlDown,
CopyOrigin:=xlFormatFromLeftOrAbove
        Rows(ActiveCell.Row).Offset(-1, 0).Copy
        Rows(ActiveCell.Row).PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False

Sheets(homeArk).Select
Range(home).Select

GoTo Slut
Slut:
Application.ScreenUpdating = True

'kald sorter makro
Call Sorter
End Sub
Avatar billede store-morten Ekspert
08. maj 2012 - 23:23 #22
Overstående virkede heller ikke i Excel 2003 :-(

Så prøv lige denne, lavet i 2003, krydser fingre.
Avatar billede vifa Novice
09. maj 2012 - 23:09 #23
Compile Error
Syntax error

"Selection.Sort Key1:=Range("C9"), Order1:=xlAscending,"
Avatar billede vifa Novice
11. maj 2012 - 18:49 #24
Gør jeg noget forkert, eller det fordi jeg bruger Office XP ?
Avatar billede store-morten Ekspert
11. maj 2012 - 21:50 #25
Nej, du gør vist ikke noget forkert.
Det er fordi du har ExcelXP.

Kan du "Indspille" en makro?
Avatar billede store-morten Ekspert
11. maj 2012 - 23:07 #26
Prøv at indspille:
Marker C9:J14
Data --> Sorter --> Sorter efter kolonne C --> Værdier --> Ældste først --> Ok

Og kopier koden her ind.
Avatar billede vifa Novice
11. maj 2012 - 22:58 #27
Ja, det kan jeg godt
Avatar billede vifa Novice
11. maj 2012 - 23:22 #28
Sub Sortere()
'
' Sortere Makro
' Makro indspillet 11-05-2012 af Victor
'

'
    Application.Goto Reference:="R9C3:R14C10"
    Selection.Sort Key1:=Range("C9"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub
Avatar billede store-morten Ekspert
11. maj 2012 - 23:35 #29
Sub Sorter()
On Error GoTo Slut
home = ActiveCell.Address
homeArk = ActiveSheet.Name

Application.ScreenUpdating = False

FørSidste = Range("C" & Rows.Count).End(xlUp).Offset(-1, 0).Row

Range("C9:J" & FørSidste).Select
Selection.Sort Key1:=Range("C9"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

Sheets(homeArk).Select
Range(home).Select

GoTo Slut
Slut:
Application.ScreenUpdating = True
End Sub


Sub TilføjRækkeHer()
On Error GoTo Slut
home = ActiveCell.Address
homeArk = ActiveSheet.Name

Application.ScreenUpdating = False
'Vælg sidste række i tabel
Range("C" & Rows.Count).End(xlUp).Offset(-1, 0).Select

        Rows(ActiveCell.Row).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Rows(ActiveCell.Row).Offset(-1, 0).Copy
        Rows(ActiveCell.Row).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False

Sheets(homeArk).Select
Range(home).Select

GoTo Slut
Slut:
Application.ScreenUpdating = True

'kald sorter makro
Call Sorter
End Sub
Avatar billede store-morten Ekspert
11. maj 2012 - 23:39 #30
Sub Sorter()
On Error GoTo Slut
home = ActiveCell.Address
homeArk = ActiveSheet.Name

Application.ScreenUpdating = False

FørSidste = Range("C" & Rows.Count).End(xlUp).Offset(-1, 0).Row

Range("C9:J" & FørSidste).Select
Selection.Sort Key1:=Range("C9"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

Sheets(homeArk).Select
Range(home).Select

GoTo Slut
Slut:
Application.ScreenUpdating = True
End Sub


Sub TilføjRækkeHer()
On Error GoTo Slut
home = ActiveCell.Address
homeArk = ActiveSheet.Name

Application.ScreenUpdating = False
'Vælg sidste række i tabel
Range("C" & Rows.Count).End(xlUp).Offset(-1, 0).Select

        Rows(ActiveCell.Row).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Rows(ActiveCell.Row).Offset(-1, 0).Copy
        Rows(ActiveCell.Row).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False

Sheets(homeArk).Select
Range(home).Select

GoTo Slut
Slut:
Application.ScreenUpdating = True

'kald sorter makro
Call Sorter
End Sub
Avatar billede vifa Novice
11. maj 2012 - 23:50 #31
Så virker det hele !

Tusind tak !
Avatar billede store-morten Ekspert
11. maj 2012 - 23:55 #32
Velbekomme.

Den virkede allerede i #21
Der var blot sket en fejl kopi/indsæt, der var et par linieskift der ikke skulle være der ;-)
Avatar billede vifa Novice
12. maj 2012 - 00:03 #33
Men tak for hjælpen :-)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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