Avatar billede Qnesta Praktikant
02. april 2019 - 09:34 Der er 29 kommentarer

Automatisk sortering i Excel

Hej,

Jeg har et Excel ark, som har overskrifter i A2,B2, etc.
I rækkerne ned efter står der således værdier ( både tal og bogstaver ) og disse rækker bliver givet forskellige farver alt efter deres status.
Hvem ved hvordan jeg kan får Excel til at sorterer automatisk efter disse farvekoder ?
Således f.eks. rækker med rødt står øverst, blå i midten og hvide nederst..
Avatar billede kim1a Ekspert
02. april 2019 - 09:49 #1
Hvordan bliver farverne skabt?
Da formler ikke kan arbejde med farver kan vi ikke lave en "oversættelse" på den måde, men vba vil kunne læse cellens farve og så lave en tal-oversættelse som du kunne sortere efter.
Avatar billede Qnesta Praktikant
02. april 2019 - 10:02 #2
Hej kim1a,

Farverne lægges på af brugerne.
F.eks. kan en række være en vare, som ikke er brugt. I de forskellige kolonner står der så nogle oplysninger om varen ( varenr, placering, etc ).
Når så varen er brugt, så farver medarbejderen rækken rød. Hvis varen er til rep, så bliver rækken blå.
Giver det mening ?
Avatar billede Jan K Ekspert
02. april 2019 - 10:40 #3
Vælg Sorter og filtrer - Brugerdefineret sortering - Vælg sorter efter: Cellefarve.
Avatar billede Mads32 Ekspert
02. april 2019 - 10:42 #4
Du skal have valgt nogle foruddefinerede farver som brugerne "SKAL" anvende.
Avatar billede Qnesta Praktikant
02. april 2019 - 10:55 #5
@ Jan K :
tak for input, men Excel skal gerne gøre det løbende / automatisk. Det skal ikke være en manuel arbejdsgang. Farverne kan skifte farve flere gange og det nytter ikke, at man manuelt skal lave sortering hver gang - så går det smarte lidt af tankegangen.

@ Mads32 :
Ikke noget problem - det kan jeg bare selv bestemme / definerer og lade disse blive brugt fremover. Selve farverne er egentlig ikke så vigtige, da vi internt bare tilpasser definitionen på de respektive farver..
Avatar billede Jan K Ekspert
02. april 2019 - 11:57 #6
Problemet er, at der ikke udløses en hændelse ved farveskift som kan igangsætte en VBA kode der udfører sorteringen. Laves der andre ændringer i regnearket, som kan udløse sorteringen?
Avatar billede Qnesta Praktikant
02. april 2019 - 12:23 #7
Hej Jan.
Der laves andre ændringer, men ikke en "fast" ændring. Det kan dog indarbejdes, hvis det er nødvendigt.
Jeg tænker f.eks. at man kan bruge en kolonne og sætte et "s" eller noget lignende - hvis det kan udløse en sortering..
Avatar billede Jan Hansen Ekspert
02. april 2019 - 12:39 #8
Hvad med en kolonne der farvelægger, altså:

Farvelæggekolonne
R
B
G
osv.
Brug evt betinget formatering til at farvelægge

Lav der efter vba til at sortere rækkerne.

Bare lidt tanker

Jan
Avatar billede Qnesta Praktikant
02. april 2019 - 12:51 #9
Hej Jan,
Det kunne sagtens være en mulighed og betinget formatering har jeg styr på.
Det er VBA-delen som volder mig problemer :)
Avatar billede Mads32 Ekspert
02. april 2019 - 13:00 #10
Hej

Jeg har lavet et lille eksempel, hvor jeg har tilføjet en hjælpe kolonne. I hjælpekolonnen kan der vælges en kode. Jeg har lavet en datavalidering på kolonnen hvor der er mulighed for at vælge "Rep", "Brugt" eller en tom celle(står der noget i en celle og der ikke skal bruges nogle af de andre valgmuligheder, skal celle blot slettes.

Der er betinget formatering på cellerne, så cellerne automatisk får tilknyttet farver.

Sortering sker ved hjælp af den almindelige sortering på området A3:G7.

Med de betegnelse jeg har anvend som kode, vil "Brugt" stå over "Rep" og de tomme vis stå nederst.

https://www.dropbox.com/s/t3qrd6q9fiw3sq9/Automatisk%20sortering%20i%20exel_mads32.xlsx?dl=0
Avatar billede Mads32 Ekspert
02. april 2019 - 13:08 #11
Avatar billede store-morten Ekspert
02. april 2019 - 13:26 #12
Prøv:

Farvelæggekolonne A
R
B
G
osv.

Sorterings kode på arket:
Private Sub Worksheet_Change(ByVal Target As Range)
'Ved ændring i A2:A10 --> kan tilpasses
    If Not Intersect(Target, Range("A2:A10")) Is Nothing Then
    'Sorter A2:C10 --> kan tilpasses
    ' Sorter efter kolonne A kun udvides med:
    ' Key1:=Range("A2"), Key2:=Range("B2"), Først A der efter B
        Range("A2:C10").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
          xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
          DataOption1:=xlSortNormal
    End If
End Sub
Avatar billede Qnesta Praktikant
02. april 2019 - 13:30 #13
Hej Mads,
Tror du er inde på noget af det rigtige, men synes ikke makroen sorterer selvom jeg laver en ændring ?
Avatar billede Qnesta Praktikant
02. april 2019 - 13:33 #14
Hej Mads,
Nu virker det alligevel - det er helt sikkert brugbart, men hvordan laver jeg det selv, så det passer i "mit" ark ?
Avatar billede store-morten Ekspert
02. april 2019 - 13:41 #15
Avatar billede Qnesta Praktikant
02. april 2019 - 14:04 #16
Hej store-morten,
Det er noget af det rigtige, men den laver ingen automatisk sortering når man ændrer status i kolonne A ?
Avatar billede Qnesta Praktikant
02. april 2019 - 14:07 #17
Nå - nu virker det også alligevel.. Kan jeg så "bare" kopierer VBA koden over i mit eget ark ?
Avatar billede store-morten Ekspert
02. april 2019 - 14:12 #18
Ja, men du skal tilpasse til di område
Avatar billede store-morten Ekspert
02. april 2019 - 14:17 #19
Private Sub Worksheet_Change(ByVal Target As Range)
'Ved ændring i A2:A10 --> kan tilpasses
    If Not Intersect(Target, Range("A2:A10")) Is Nothing Then
    'Sorter A2:C10 --> kan tilpasses
    ' Sorter efter kolonne A kun udvides med:
    ' Key1:=Range("A2"), Key2:=Range("B2"), Først A der efter B
        Range("A2:C10").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
          xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
          DataOption1:=xlSortNormal
    End If
End Sub
Avatar billede Qnesta Praktikant
02. april 2019 - 14:50 #20
Hej,

Jeg tror dælme det er løsningen, men skal lige have det til at virke helt perfekt :)
Gør det nogen forskel hvis der kommer flere farver til ( altså i kolonne A ) ?
Avatar billede store-morten Ekspert
02. april 2019 - 15:34 #21
Nej, det gør ingen forskel, der sorteres på teksten i kolonne A.
Farven følger med pga. betinget formatering.
Avatar billede Qnesta Praktikant
02. april 2019 - 15:58 #22
Det skal jeg nok få til at spille - fedt.
Dog lige en sidste ting..- hvordan bestemmer jeg rækkefølgen på sorteringen ?
F.eks. vil jeg gerne have rækker med tom kolonne A øverst og så grøn, gul, rød.
Avatar billede store-morten Ekspert
02. april 2019 - 16:09 #23
Du kan ikke sortere på farve.
Brug evt. kode:
Grøn = 1
Gul = 2
rød = 3
Avatar billede Qnesta Praktikant
03. april 2019 - 13:20 #24
Hej Morten,
Jeg er næsten i mål og det er super godt - mangler bare den sidste "lille" ting. Nogle gange vil kolonne A være tom og så skal disse gerne stå over rækker som har en kode ( grøn=1, gul=2,rød=3 ).
Kan man løse det på nogen måde ?
Avatar billede Jan Hansen Ekspert
03. april 2019 - 13:26 #25
Hvad med at blanke ændres til 0 (nul)

Jan
Avatar billede Qnesta Praktikant
03. april 2019 - 13:43 #26
Hej,
Det kunne sagtens være en mulighed, men ville helst undgå at man aktivt skulle skrive en status i - det ville være bedst, hvis Excel kunne løse det selvom feltet blot er blankt.
Avatar billede store-morten Ekspert
03. april 2019 - 14:14 #27
Hvis man laver en makro der sætter 0 i alle tomme celler i kolonne A
Avatar billede store-morten Ekspert
03. april 2019 - 14:32 #28
Avatar billede store-morten Ekspert
03. april 2019 - 14:44 #29
Har lavet en makro der udskifter tomme celle med 0
Fra A2 og så langt ned der er data i kolonne B, skal kun køres en gang.

Til føjet kode, der sætte 0 hvis "Status" slettes.

Betinget formatering: 0 = hvid tekst/tal.
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
Stort udvalg af Excel kurser til alle niveauer og jobfunktioner

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





White paper
Sådan: Opgradér din printerløsning uden store investeringer