Avatar billede masteraaen Novice
25. juli 2004 - 13:26 Der er 5 kommentarer og
1 løsning

Sortering i sub

Hejsa.

Jeg kan ikke få nedenstående kode til at køre. Jeg får fejlmeldinger i de linier markeret med * under selection.sort. Hvordan *"# får jeg den til at køre?
Den del af koden, der giver fejl er optaget med makro. Fedt at Excel ikke fatter sit eget sprog!!!!!


"""
Private Sub CommandButton1_Click()
Dim selskabsnr, i, t, q As Integer
Dim startmd, Rmd, aar As Double
Rmd = 0
aar = 1

*Sheets("pfsize").Activate
*ActiveSheet.Cells.Select
*Selection.Sort Key1:=Range("C1"), Order1:=xlDescending, *Header:=xlGuess, _
*OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
   
For i = 1 To 68
    selskabsnr = Worksheets("pfsize").Cells(i + 1, 1)
    'find selskabets kolonnetal
    startmd = 25 + (aar * 12)
    For t = 1 To 12
        Rmd = (Worksheets("Afkast").Cells(startmd + t - 1, selskabsnr + 2)) - 1
       
        Sheets("1992s").Activate
        ActiveSheet.Cells(1, i + 5).Select
        ActiveCell.FormulaR1C1 = selskabsnr
        ActiveSheet.Cells(t + 1, i + 5).Select
        ActiveCell.FormulaR1C1 = Rmd
    Next t
Next i
End Sub
""""

Jeg håber meget, der er en der vil hjælpe mig, da jeg er temmelig presset.


Venligst

Morten
Avatar billede masteraaen Novice
25. juli 2004 - 13:55 #1
Det kan også være det kan hjælpe mig, hvis een kan forklare, hvordan man henter værdier fra et ark og ind i et array som man derefter sorterer og spytter ud i et andet ark...
Avatar billede kabbak Professor
25. juli 2004 - 17:56 #2
Du kan ikke arbejde i andre ark fra et arkmodul, det kan kun gøres fra et modul.

' I arkmodulet
Private Sub CommandButton1_Click()
Call Kode
End Sub

' I et modul

Public Sub Kode()
Dim selskabsnr, i, t, q As Integer
Dim startmd, Rmd, aar As Double
Rmd = 0
aar = 1

Sheets("pfsize").Activate
ActiveSheet.Cells.Select
Selection.Sort Key1:=Range("C1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
   
For i = 1 To 68
    selskabsnr = Worksheets("pfsize").Cells(i + 1, 1)
    'find selskabets kolonnetal
    startmd = 25 + (aar * 12)
    For t = 1 To 12
        Rmd = (Worksheets("Afkast").Cells(startmd + t - 1, selskabsnr + 2)) - 1
       
        Sheets("1992s").Activate
        ActiveSheet.Cells(1, i + 5).Select
        ActiveCell.FormulaR1C1 = selskabsnr
        ActiveSheet.Cells(t + 1, i + 5).Select
        ActiveCell.FormulaR1C1 = Rmd
    Next t
Next i
End Sub
Avatar billede kabbak Professor
25. juli 2004 - 21:13 #3
Sub SortArray()
Dim Temp() As Variant, RankArray As Variant, N As Long, i As Integer, j As Integer
Dim swap As Boolean, Col As Integer, T As Integer
RankArray = Selection ' makeringen på regnearket
N = UBound(RankArray)
Col = Selection.Columns.Count
ReDim Temp(Col)
swap = True
If Col > 1 Then
SortKolonne = InputBox("Sortering på kolonne nr. ( 1 til " & Col & " )")
A = Val(SortKolonne)
Else
A = 1
End If

Do While swap
  swap = False
  For i = 1 To N - 1
      For j = i To N
        If RankArray(i, A) > RankArray(j, A) Then
          For T = 1 To Col
            Temp(T) = RankArray(i, T)
            RankArray(i, T) = RankArray(j, T)
            RankArray(j, T) = Temp(T)
          Next
            swap = True
        End If
    Next
  Next
Loop
Worksheets("ark2").Activate ' arket det skal over i
Range(Cells(1, 1), Cells(N, Col)) = RankArray
End Sub
Avatar billede martin_moth Mester
27. juli 2004 - 14:39 #4
Excel fatter fint sit eget sprog. Jeg kan garanterer, at fejlen sidder bag tastaturet ;o)
Avatar billede kabbak Professor
25. januar 2006 - 22:17 #5
marker mit navn og tryk accepter, hvis du kunne bruge koden
Avatar billede masteraaen Novice
25. januar 2006 - 22:48 #6
Done! :-)
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
Kurser inden for grundlæggende programmering

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