AnAbo Skrevet 6. oktober 2012 Del Skrevet 6. oktober 2012 (endret) Hey! Jeg trenger ett stykke hjelp med EXCEL! Jeg lager et sheet som skal sortere rundetider og navn etter hvert som de blir fylt inn via VBA. Problemet er å få en macro som automatisk sorterer tidene, og navnene deretter til å fungere, så dette kan gå automatisk.. fikk denne til å fungere, men så kræsja excel, og måtte lage alt på nytt.. nå får jeg den ikke til å funke: Private Sub Worksheet_Change(ByVal Target As Range) Range("A2").Select Range(Selection, Selection.End(xlDown)).Select With Selection.Validation .Delete .Add Type:=xlValidateTextLength, AlertStyle:=xlValidAlertStop, _ Operator:=xlGreaterEqual, Formula1:="1" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "Navn" .ErrorTitle = "Navn" .InputMessage = "Fyll inn ett navn." .ErrorMessage = "Please skriv inn et navn!" .ShowInput = True .ShowError = True End With Range("B2").Select Range(Selection, Selection.End(xlDown)).Select With Selection.Validation .Delete .Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator _ :=xlGreaterEqual, Formula1:="0.00" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "Tid" .ErrorTitle = "Tid" .InputMessage = "Skriv inn en tid (00,000)!" .ErrorMessage = "Se om du har skrevet inn en tid" .ShowInput = True .ShowError = True End With Dim erow As Long erow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row Range("B:B").Select Range("A:B").Sort Key1:=Range("B2"), Order1:=xlDescending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal If Cells(erow - 1, 1).Offset(0, 1) = "" Then Cells(erow - 1, 1).Offset(0, 1).Select Else Cells(erow, 1).Select End If End Sub Noen som har en enklere måte å gjøre det på? Autosort macro. Regnearket heter "StartRunder" Jeg skal sortere TID "fra kollonne A, rad 2 og nedover" Hvor navn skal sorteres deretter "fra kollonne B, rad 2 og nedover" På forhånd, tusen takk for at det finnes folk som dere der ute! Endret 7. oktober 2012 av Soetz Lenke til kommentar
Concombre Skrevet 11. oktober 2012 Del Skrevet 11. oktober 2012 (endret) Her er en løsning uten makroer: Skriv inn tidene fra B2 og nedover Skriv følgende formel i A2 og kopier nedover: =IF(B2>0;RANK(B2;B:B;1);"") Skriv inn navnene på deltakerne fra C2 og nedover Skriv 1 i D2, 2 i D3, 3 i D4 osv Skriv =IFERROR(VLOOKUP(SMALL($A:$A;D2);$A:$B;2;0);"") i E2 og kopier nedover. Skriv =IFERROR(VLOOKUP(SMALL(A:A;D2);A:C;3;0);"") i F2 og kopier nedover. Hvis du vil se delte plasseringer, skriv =IFERROR(SMALL(A:A;D2);"") i G2 og kopier nedover. Håper du kan bruke denne løsningen! Her er formlene på norsk: =HVIS(B2>0;RANG(B2;B:B;1);"") =HVISFEIL(FINN.RAD(N.MINST($A:$A;D2);$A:$B;2;0);"") =HVISFEIL(FINN.RAD(N.MINST(A:A;D2);A:C;3;0);"") =HVISFEIL(N.MINST(A:A;D2);"") Endret 12. oktober 2012 av Concombre Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå