Gå till innehåll

Sortera data i tabell utifrån kryssrutor


Gå till lösning Löst av MH_,

Recommended Posts

Hej.

 

Jag har en tabell i excel (se exempel på bilden) där jag vill kunna använda flera olika kryssrutor för att kunna styra autofiltret. 

I tabellen kommer det bara att finnas två värden, "SANT" och "FALSKT". Det kommer att finnas en kryssruta för varje kolumn där jag ska kunna filtrera, alltså kryssruta 1 ska vara kopplad till kolumn "G", kryssruta 2 ska vara kopplad till kolumn "H" och så vidare. Totalt ska det finnas 10 kryssrutor. 

När man "bockar i" t ex kryssruta 1 så skall autofiltret ställas in så att man bara ser värdet "SANT" i kolumnen den är kopplad till (i det här fallet kolumn "G"). När man sedan "bockar ur" kryssrutan så skall autofiltret gå tillbaka och visa alla värdena igen i kolumnen ("markera allt" i autofiltret). Respektive kryssruta skall fungera individuellt, man ska alltså kunna välja flera kryssrutor samtidigt då man t ex vill sortera på kolumnerna G, K och P samtidigt. 

Anledningen till detta är för att jag ska kunna dölja kolumnerna G-P men att man fortfarande ska kunna sortera datan i dem. Sen kommer också kryssrutorna ligga på ett annat ställe på fliken. Nu la jag kryssrutorna ovanför respektive kolumn på bilden bara för att kunna visa det bättre. En annan sak är att jag heller inte kommer att veta hur många rader som det kommer finnas då detta kommer att fyllas på med tiden med hjälp av VBA.

Vad jag har förstått hittills är att man måste ta lite hjälp av VBA för att kunna lösa detta. Hoppas det finns någon som har en smart lösning på detta.

Skarmbildexcel.jpg

Länk till kommentar
Dela på andra webbplatser

Om jag förstår din fråga rätt så behöver du inte VBA. Testa utsnitt istället.

Ställ dig i din tabell, tryck sedan på (Om du inte ser "tabelldesign" så får du trycka Ctrl+T för att omvandla det till en "riktig" exceltabell)

Tabelldesign->Verktyg->infoga utsnitt.

Välj de kolumner du vill ha filter för. 

När du trycker [OK] så får du fram ett "utsnitt" för varje kolumn och kan filtrera som du vill. Det borde vara precis vad du behöver

 

Eftersom du bara har Ja/Nej så ser du inte att de är ihopkopplade. Men om du hade haft fler alternativ i någon av kolumnerna så skulle du se att alla alternativ som redan filtrerats bort blir grå. Rätt snyggt.

Länk till kommentar
Dela på andra webbplatser

  • Lösning

Såg nu att du redan använder VBA. 

Högerklicka på din kryssruta och peta in en kod i stil med:

Private Sub CheckBox1_Change()
If CheckBox1.Value = True Then
    ActiveSheet.ListObjects("Tabell3").Range.AutoFilter Field:=4, Criteria1:="1"
ElseIf CheckBox1.Value = False Then
    ActiveSheet.ListObjects("Tabell3").Range.AutoFilter Field:=4
End If
End Sub

Fast med rätt namn på Checkbox och tabell. Samt rätt field-nummer.

Den här koden kommer att ligga under det aktuella Bladet, inte under en modul (när du är i VBA-editorn: Visa-> projektutforskaren  Ctrl+R).

Det är en händelsehanterare vilket kan ge stora problem. Men det borde inte vara några problem när det är "CheckBox_Change" du bevakar.

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...

Delta i dialogen

Du kan skriva svaret nu och registrera dig senare, Om du har ett konto, logga in nu för att svara på inlägget.

Gäst
Svara i detta ämne...

×   Du har klistrat in innehåll med formatering.   Ta bort formatering

  Only 75 emoji are allowed.

×   Din länk har automatiskt bäddats in.   Visa som länk istället

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Skapa nytt...