12. december 2005 - 11:06Der er
6 kommentarer og 1 løsning
Ved tryk på celle - sorter a-z z-a
Hejsa
Jeg har fået denne formel som virker perfekt til at sortere en tabel a-z og z-a ved tryk på en celle i en given kollonne.
Men man SKAL dobbelt klikke på den for at den virker, og så stiller markøren sig inden i cellen, så man ikke igen kan dobbeltklikke på den uden at man først skal markere en anden celle.
Kan man ikke låse den række man ønsker skal fungere som sorterings celler, så man blot skal trykke en gang for at sortere a-z og næste gang man trykker skal der sorteres z-a.
Jeg håber i forstår, ellers skal i endelig bare spørge.
Her er formlen som fungerer (næsten som jeg ønsker det) :-)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("A1:Z1")) Is Nothing Then Exit Sub If Target.Cells.Count <> 1 Then Exit Sub If LastSort = 1 Then LastSort = 2 Else LastSort = 1 Range("A1:Z1000").Sort Key1:=Target.Offset(1, 0), Order1:=LastSort, Header:= _ xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("A1:Z1")) Is Nothing Then Exit Sub If Target.Cells.Count <> 1 Then Exit Sub
cancel = True
If LastSort = 1 Then LastSort = 2 Else LastSort = 1 Range("A1:Z1000").Sort Key1:=Target.Offset(1, 0), Order1:=LastSort, Header:= _ xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom End Sub
Psss. kan du ikke fortælle mig hvordan jeg får lavet fx. kolonne D lyse rød. Jeg fik denne funktion tidligere som virker ved kolonne B (bliver lysegul) Men hvis jeg kopierer den og laver en magen til med D istedet for B går der fejl i systemet?
Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Range If Not Intersect(Target, Range("B:B")) Is Nothing Then Range("B:B").Interior.ColorIndex = 36 End If End Sub
Ekstremt krævende, men kan sorteringsfunktionen laves så den springer over rækker som er 0 altså som ikke indeholder andet end et 0. Det er fordi jeg har lavet en kopieringsfunktion som kopierer kolonne H til kolonne B i de første 1000 rækker, men der er ikke så mange poster, så hvis jeg sorterer række B vil der komme 700 rækker øverst med 0 - 0 osv indtil de rigtige rækker kommer. Lidt som : If B=0 then "smid ned i bunden" Hvis du forstår hvad jeg mener.
Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Range If Not Intersect(Target, Range("B:B, D:D")) Is Nothing Then Range("B:B").Interior.ColorIndex = 36 Range("D:D").Interior.ColorIndex = 3 End If End Sub
spm 2 Nej, ikke umiddelbart, men hvis du viser din kode for at kopiere H over i B, kan jeg muligvis lave den så du kan nøjes med at kopiere det rigtige antal rækker over. Det vil vel give det samme ?
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.