Avatar billede olar Nybegynder
02. juni 2011 - 01:53 Der er 1 løsning

Sortering af data

Jeg har tidligere stillet flg. spørgsmål:
Jeg har en liste med flere kolonner, som jeg ønsker sorteret i retning fra A til Å. Listen består af bogstavskombinationer, og Excel opfatter AA som et Å, dette betyder at AA kommer til at stå nederst på min liste, hvor jeg ønsker det skal stå øverst. Er det muligt at få Excel til at opfatte AA som 2 A`er og ikke som Å?
Har efter et godt råd fulgt nedenstående opskrift/link:

http://www.eksperten.dk/spm/903827

Dette virker som sådan også, men jeg aner stort set intet om at skrive kode, og problemet er, at jeg har 11 kolonner (A til K)som skal sorteres efter kolonne B, og de resterende kolonner skal følge med, således at rækkerne ikke ændres.
Avatar billede supertekst Ekspert
08. juni 2011 - 23:54 #1
Sub sorteringMedMere()
Dim antalRækker As Long, række As Long, navn As String, p As Byte

    Application.ScreenUpdating = False
   
Rem find antallet af rækker
    antalRækker = ActiveCell.SpecialCells(xlLastCell).row
   
Rem traverser kolonne B udskift aa..
Rem ================================
    For række = 1 To antalRækker
       
Rem udtag navnet - gem navnet som kommentar
        navn = Cells(række, 2)
        Cells(række, 2).AddComment navn
       
Rem findes "aa"/"Aa" i navnet - så erstat det med aA
        navn = Replace(navn, "aa", "aA")
        navn = Replace(navn, "Aa", "aA")
        navn = Replace(navn, "AA", "aA")
       
        Cells(række, 2) = navn
    Next række

Rem sorter iflg. kolonne B - når alle rækker er behandlet
    ActiveSheet.Sort.SortFields.Add Key:=Range("B1:B" & antalRækker), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
   
    With ActiveSheet.Sort
        .SetRange Range("A1:K" & antalRækker)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Rem genopret navn - indsæt fra kommentaren
    For række = 1 To antalRækker
Rem udtag navnet - indsæt dette og slet kommentar
        navn = Cells(række, 2).Comment.Text
        Cells(række, 2).Value = navn
        Cells(række, 2).Comment.Delete
    Next række
       
    Application.ScreenUpdating = False
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
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