Avatar billede mikkelk Nybegynder
12. november 2004 - 09:06 Der er 9 kommentarer og
2 løsninger

Hvad er galt med denne makro

Sub Beregn()
'
' Beregn Makro
' Makro indspillet 12-11-2004 af Århus Amt
'

'
Dim Counter As Integer
For Counter = 3 To 200
    strTemp = Worksheets("Rådata").Cells(Counter, 12).Value
    Worksheets("Beregningsark").Cells(1, 1).Value = strTemp
    If strTemp > 0 Then
        tempval = 1
        For i = 12 To 28
            If i = 12 Then
                valueStr = 5
            ElseIf i = 13 Then
                valueStr = 11.5
            ElseIf i = 14 Then
                valueStr = 13.75
            ElseIf i = 15 Then
                valueStr = 16.5
            ElseIf i = 16 Then
                valueStr = 18.75
            ElseIf i = 17 Then
                valueStr = 21.5
            ElseIf i = 18 Then
                valueStr = 23.75
            ElseIf i = 19 Then
                valueStr = 26.5
            ElseIf i = 20 Then
                valueStr = 28.75
            ElseIf i = 21 Then
                valueStr = 31.5
            ElseIf i = 22 Then
                valueStr = 33.75
            ElseIf i = 23 Then
                valueStr = 36.5
            ElseIf i = 24 Then
                valueStr = 38.75
            ElseIf i = 25 Then
                valueStr = 41.5
            ElseIf i = 26 Then
                valueStr = 43.75
            ElseIf i = 27 Then
                valueStr = 46.5
            ElseIf i = 27 Then
                valueStr = 48.75
            End If
            strTemp2 = Worksheets("Rådata").Cells(Counter, i).Value
            If strTemp2 > 0 Then
                For n = tempval To (tempval + strTemp2)
                  Worksheets("Beregningsark").Cells(n, i + 25).Value = valueStr
                Next n
                tempval = (tempval + strTemp2)
            End If
        Next i
    End If
Next Counter
End Sub
Avatar billede mikkelk Nybegynder
12. november 2004 - 09:07 #1
Problemet er i første omgang at den intet foretager sig...
Avatar billede mikkelk Nybegynder
12. november 2004 - 09:23 #2
Ups...virkede alligevel...brugte forkerte kollonner...
Avatar billede mikkelk Nybegynder
12. november 2004 - 09:23 #3
Tilgengæld giver det her problemer:
Sub Beregn()
'
' Beregn Makro
' Makro indspillet 12-11-2004 af Århus Amt
'

'
Dim Counter As Integer
For Counter = 3 To 200
    strTemp = Worksheets("Rådata").Cells(Counter, 16).Value
    Worksheets("Beregningsark").Cells(1, 1).Value = strTemp
    If strTemp > 0 Then
        tempFormListe = ""
        tempval = 1
        For i = 17 To 33
            If i = 17 Then
                valueStr = 5
            ElseIf i = 18 Then
                valueStr = 11.5
            ElseIf i = 19 Then
                valueStr = 13.75
            ElseIf i = 20 Then
                valueStr = 16.5
            ElseIf i = 21 Then
                valueStr = 18.75
            ElseIf i = 22 Then
                valueStr = 21.5
            ElseIf i = 23 Then
                valueStr = 23.75
            ElseIf i = 24 Then
                valueStr = 26.5
            ElseIf i = 25 Then
                valueStr = 28.75
            ElseIf i = 26 Then
                valueStr = 31.5
            ElseIf i = 27 Then
                valueStr = 33.75
            ElseIf i = 28 Then
                valueStr = 36.5
            ElseIf i = 29 Then
                valueStr = 38.75
            ElseIf i = 30 Then
                valueStr = 41.5
            ElseIf i = 31 Then
                valueStr = 43.75
            ElseIf i = 32 Then
                valueStr = 46.5
            ElseIf i = 33 Then
                valueStr = 48.75
            End If
            strTemp2 = Worksheets("Rådata").Cells(Counter, i).Value
            If strTemp2 > 0 Then
                For n = tempval To (tempval + strTemp2)
                    If tempFormListe = "" Then
                        tempFormListe = valueStr
                    Else
                      tempFormListe = tempFormListe & ";" & valueStr
                    End If
                Next n
                tempval = (tempval + strTemp2)
            End If
        Next i
        If tempFormListe <> "" Then
            Worksheets("Data, individniveau").Cells(Counter + 1, 16).Formula = "=MIDDEL(" & tempFormListe & ")"
        End If
    End If
Next Counter
End Sub
Avatar billede mikkelk Nybegynder
12. november 2004 - 09:24 #4
Det er linien
    Worksheets("Data, individniveau").Cells(Counter + 1, 16).Formula = "=MIDDEL(" & tempFormListe & ")"

Der fejler
Avatar billede mikkelk Nybegynder
12. november 2004 - 09:27 #5
fejlkode 7: Out of memory
Avatar billede bak Forsker
12. november 2004 - 09:32 #6
Prøv lige med FormulaLocal istedet. Du bruger en dansk formel og den forventer en engelsk

Worksheets("Data, individniveau").Cells(Counter + 1, 16).FormulaLocal = "=MIDDEL(" & tempFormListe & ")"
Avatar billede mikkelk Nybegynder
12. november 2004 - 09:59 #7
: Out of memory fejlen skyldtes åbenbart at formlen blev for lang...øv... men efter en division med 15 og brug af FormulaLocal virker det.

Hvad er den øvre grænse for længden af en formel?
Avatar billede mikkelk Nybegynder
12. november 2004 - 10:03 #8
Helt konkret skal jeg have beregnet middelværdien af op imod 300 tal...
Avatar billede mikkelk Nybegynder
12. november 2004 - 10:10 #9
Har fundet løsningen tror jeg.. Tak for hjælpen... smid du bare et svar...
Avatar billede bak Forsker
12. november 2004 - 11:07 #10
ok, så giv mig 15 og tag selv resten :-)
Avatar billede mikkelk Nybegynder
12. november 2004 - 11:44 #11
Det er så iorden :-)
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