Avatar billede lunddata Nybegynder
09. april 2006 - 18:53 Der er 8 kommentarer og
1 løsning

Sorter i stigende orden

Sidder og slås med kode til sortering af tal frembragt via slump.
Jeg frembringer f.eks tilfældige tal i(a1:a5), kopierer disse tal til f.eks (b1:b5)og vil have sorteret i stigende orden i(c1:c5).
Kan bare ikke få det til at virke.
Avatar billede excelent Ekspert
09. april 2006 - 19:06 #1
Sub Makro1()
    Range("B1:B5").Select
    Selection.Copy
    Range("C1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("c1").Select
End Sub
Avatar billede sjap Praktikant
09. april 2006 - 19:07 #2
Har du husket at du kun indsætter værdier ved kopieringen? Hvis du kopierer SLUMP funktioen virker det ikke - cellerne bliver sorteret, men SLUMP beergner med det samme et nyt tal, og så passer sorteringen ikke længere.

    Range("A1:A5").Copy
    Range("C1:C5").PasteSpecial Paste:=xlValues
    Range("C1:C5").Sort Key1:=Range("C1"), Order1:=xlDescending
Avatar billede lunddata Nybegynder
09. april 2006 - 20:00 #3
Det er lige præcis slump-funktionen der går ind og konflikter sorteringen.
Tilsyneladende virker begge ovenstående forslag.
Men kan jeg på anden snedig måde få sortering til at virke i kodeform?
Avatar billede excelent Ekspert
09. april 2006 - 20:07 #4
BLOT LAV SLUMP I KOLONNE A, SÅ LAVER MAKROEN RESTEN
Sub Makro3()
    Range("A1:A5").Select
    Selection.Copy
    Range("B1:B5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("D10").Select
    Application.CutCopyMode = False
    Range("B1:B5").Select
    Selection.Copy
    Range("C1:C5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("C1:C5").Select
    Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("D1").Select
End Sub
Avatar billede excelent Ekspert
09. april 2006 - 20:16 #5
Du kunne jo også bruge følgende formler

=MINDSTE($A$1:$A$5;1)
=MINDSTE($A$1:$A$5;2)
=MINDSTE($A$1:$A$5;3)
=MINDSTE($A$1:$A$5;4)
=MINDSTE($A$1:$A$5;5)
Avatar billede excelent Ekspert
09. april 2006 - 20:34 #6
nej jeg kan godt se at makro3 ikke  virker efter hensigten
Avatar billede excelent Ekspert
09. april 2006 - 20:44 #7
men så gør formlerne det til gængæld :-)
Avatar billede excelent Ekspert
09. april 2006 - 20:58 #8
Skal det være VBA det hele så prøv denne

Sub Makro1()
Dim t, tal(10)
For t = 1 To 5
tal(t) = Int((100 - 1 + 1) * Rnd + 1)
Next
For t = 1 To 5
Range("a" & t).Value = tal(t): Range("b" & t).Value = tal(t): Range("c" & t).Value = tal(t)
Next
Range("C1:C5").Select
    Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("D1").Select

End Sub
Avatar billede lunddata Nybegynder
10. april 2006 - 00:17 #9
Ups kom til at give sjap point, det har han også fortjent, men det var excelents sidste god ide jeg fuldt ud kan bruge.
Jeg opretter lige et nyt spm. så excelent kan svare
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