Avatar billede Greenseeker Praktikant
09. oktober 2009 - 08:07 Der er 6 kommentarer og
1 løsning

Sortering: Tomme rækker nederst?

Hej Venner!

Følgende makro sorterer området med de tomme rækker øverst. De skal stå nederst i den stigende sortering... Hvad skal rettes i makroen? :o)

På forhånd tak!



Sub OpdaterListe()

Application.ScreenUpdating = False
    Range("I5:N1004").Select
    Selection.Copy
    Range("B5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("B2").Select
Application.ScreenUpdating = True
End Sub
Avatar billede tjacob Juniormester
09. oktober 2009 - 12:20 #1
Det forstår jeg ikke.???
Hvis jeg kører denne makro, kommer de tomme celler i kolonne B nederst. -Uanset om der sorteres xlAscending eller xlDescending.
Avatar billede Greenseeker Praktikant
09. oktober 2009 - 12:48 #2
Nej, det forstår jeg heller ikke... Kan det have noget at gøre med den første del af makroen? De værdier der bliver kopieret ind i den liste der skal sorteres kommer fra formler som f.eks. den her:

=HVIS(Borgerliste!F6<>"";Borgerliste!K6;"")

...og "værdierne" er tekst, dvs. sorteringen er alfabetisk... Ved ikke om det har noget at sige. Kan i hvert fald ikke få den til at sætte de tomme celler nederst.
Avatar billede tjacob Juniormester
09. oktober 2009 - 13:27 #3
Her er et par små forslag, men jeg har ikke den store tiltro til at de vil ændre det:

Indsæt linien: ActiveSheet.Sort.SortFields.Clear
lige efter: Application.ScreenUpdating = False

Indsæt den fulde range her:  Selection.Sort Key1:=Range("B5").....
ændres til: Selection.Sort Key1:=Range("B5:B1004").....
Avatar billede Greenseeker Praktikant
09. oktober 2009 - 13:57 #4
Hmm... Du havde ret. Det ændrede ikke på noget. Andre bud?
Avatar billede tjacob Juniormester
09. oktober 2009 - 14:45 #5
Jeg har ikke andre gode ideer, men du kan jo altid "manuelt" flytte de tomme celler ned i bunden. Prøv med denne:

Sub OpdaterListe()

    Application.ScreenUpdating = False
    ActiveSheet.Sort.SortFields.Clear
    Range("I5:N1004").Select
    Selection.Copy
    Range("B5:B1004").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Dim SlutCelle As Long
    SlutCelle = Range("B1004").End(xlUp).Row - 1
    If SlutCelle > 5 Then
        Range("B5:B" & CStr(SlutCelle)).Select
        Selection.Cut
        Range("B1005").Select
        Selection.Insert Shift:=xlDown
    End If
    Range("B2").Select
    Application.ScreenUpdating = True

End Sub
Avatar billede tjacob Juniormester
09. oktober 2009 - 14:47 #6
UPS: Der er en lille fejl:

Range("B5:B" & CStr(SlutCelle)).Select

skal ændres til:

Range("B5:F" & CStr(SlutCelle)).Select
Avatar billede Greenseeker Praktikant
12. oktober 2009 - 11:47 #7
Well, det virker heller ikke, men tror jeg har fundet en måde at komme uden om problemet på.

Ellers tak for forsøget, tjacob!
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