Avatar billede kol Nybegynder
02. december 2004 - 13:50 Der er 15 kommentarer og
1 løsning

Sortering efter farve på tal

Jeg har et større regneark, hvor en kolonne består af tal, sorte og røde.
Er det muligt at sortere rækkerne med de røde tal ud for sig selv?
Hvis ja: Hvordan?

Hilsen
KOL
Avatar billede overchord Nybegynder
02. december 2004 - 14:34 #1
Er tallene sorte og roede pga formattering? Altsaa f.eks de roede tla er neagtive mens sorte er positive?
Avatar billede kol Nybegynder
02. december 2004 - 14:42 #2
Nej, tallene er bare valgt med rød farve for at de skiller sig ud. Har ikke noget at gøre med positiv/negativ værdi.

KOL
Avatar billede kol Nybegynder
02. december 2004 - 15:07 #3
Så der skal alene sortere på skriftens farve.
Nogen der bare lige ved hvordan?

KOL
Avatar billede blackscorpion Nybegynder
02. december 2004 - 15:09 #4
tror desværre ikke det er muligt, da regnearket ikke kigger på tekstformateringen, men værdi'en af cellen.
Avatar billede fobian Nybegynder
02. december 2004 - 15:15 #5
Man kan lave en lille macro der kan klare arbejdet ;o)
Avatar billede bak Forsker
02. december 2004 - 15:24 #6
eller du kan bruge denne brugerdefinerede funktion i en kolonne ved siden af..
Indsæt funktionen i et Alm. modul.
Den returnerer farvekoden for font og den kan du sortere på.

Function Farve(Celle)
If Celle.Cells.Count = 1 Then
    Farve = Celle.Font.ColorIndex
Else
    Farve = CVErr(xlErrNA)
End If
End Function
Avatar billede kol Nybegynder
02. december 2004 - 15:30 #7
fobian
Du har givetvis ret, men kan du så fix'e sådan en makro?
Avatar billede fobian Nybegynder
02. december 2004 - 15:52 #8
Det kan jeg godt. Du får den i morgen formiddag :o)
Avatar billede kol Nybegynder
02. december 2004 - 15:58 #9
På forhånd tak!

KOL
Avatar billede kol Nybegynder
02. december 2004 - 17:15 #10
bak
Jeg er nok nødt til at have lidt instruktion i funktion og modul

Hilsen
KOL
Avatar billede tobler Nybegynder
02. december 2004 - 17:31 #11
Når du står i dit ark taster du Alt+F11, så kommer du ind i makro editoren.

Derefter indsætter du et modul, så kopierer du bak's kode ind og saver arket.

I en hjælpecelle ved siden af, indtaster du så f.eks. i B1 =Farve(A1)
Avatar billede fobian Nybegynder
02. december 2004 - 22:00 #12
Her har du en macro, som kan adskille de røde fra de sorte tal. Det den gør er at den kigger i den kolonne som er angivet i linien "SorterKolonne = "F"" Du kan bare rette bogstavet så det passer til den kolonne du har dine tal i. Macroen gennemsøger tallene fra oven og når den finder et tal, som står med rødt sletter den hele rækken
og indsætter den i række 2. På den måde bliver række 2 hele tiden skubbet nedad når der kommer et nyt rødt tal. Når macroen er færdig vil alle de røde tal stå øverst på dit ark. Jeg har indbygget en sortering, så de røde tal står i stigende rækkefølge. Hvis du ikke vil have den sortering med skal du bare slette linien  "Sorter (SorterKolonne)" Sorteringen sker på kolonne A til den kolonne du har angivet - det kan tilrettes, hvis dit ark ser anderledes ud.

Gør som i den forrige kommentar med at taste Alt+F11 indsæt et modul og kopier denne kode ind i modulet. Du skal derefter stille dig i det ark som skal sorteres og derfra afspille macroen. tast Alt+F8 og vælg Sorterfarver og Afspil, så skulle det virke :o)

Public Sub SorterFarver()
    Dim i As Long
    Dim SorterKolonne As String
    SorterKolonne = "F"
 
    Sorter (SorterKolonne)
   
    For i = 2 To Range(SorterKolonne & "65536").End(xlUp).Row
        If Range(SorterKolonne & i).Font.ColorIndex = 3 And i > 2 Then
            Range(SorterKolonne & i).EntireRow.Cut
            Rows("2").Select
            Selection.Insert Shift:=xlDown
        End If
    Next
End Sub

Private Sub Sorter(ByVal SorterKolonne As String)
    Columns("A:" & SorterKolonne).Select
    Range(SorterKolonne & "1").Activate
    Selection.Sort Key1:=Range(SorterKolonne & "2"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
Avatar billede kol Nybegynder
03. december 2004 - 08:43 #13
fobian
Det virker!
Næsten perfekt: For 1. række, som har sorte tal, bliver stående øverst efterfulgt af alle de røde sorteret stigende.
Ikke noget problem, men alligevel: Hvorfor?

Hilsen
KOL
Avatar billede fobian Nybegynder
03. december 2004 - 09:22 #14
Hejsa Kol

Jeg gik ud fra at række 1 i dit ark var en overskrift. Derfor gør macroen ikke noget ved den 1. række.  Jeg har lige tilrettet macroen, så den nu har 1. række med:

Public Sub SorterFarver()
    Dim i As Long
    Dim SorterKolonne As String
    SorterKolonne = "F"
 
    Sorter (SorterKolonne)
   
    For i = 1 To Range(SorterKolonne & "65536").End(xlUp).Row
        If Range(SorterKolonne & i).Font.ColorIndex = 3 And i > 1 Then
            Range(SorterKolonne & i).EntireRow.Cut
            Rows("1").Select
            Selection.Insert Shift:=xlDown
        End If
    Next
End Sub

Private Sub Sorter(ByVal SorterKolonne As String)
    Columns("A:" & SorterKolonne).Select
    Selection.Sort Key1:=Range(SorterKolonne & "1"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
Avatar billede kol Nybegynder
03. december 2004 - 14:10 #15
Hej "bak" assisteret af "tobler"
Tak for jeres input. Jeg fik det ikke lige til at fungere, selvom jeg da nok tror, at jeres løsning er OK.

Hilsen KOL
Avatar billede kol Nybegynder
03. december 2004 - 14:11 #16
fobian

Det fungerede flot før, som sagt, og nu er det bare perfekt!

Tak for hjælp.

Hilsen KOL
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