Avatar billede jasperDK Nybegynder
21. februar 2012 - 13:31 Der er 9 kommentarer og
1 løsning

Dele resultaterne ud i 3 kolonner, så summen af hver kolonnen bliver så ens som muligt.

Brugeren udregner 10 forskellige resultater, disse resultater skal så indsættes i 3 kolonner. Målet er, at summen i hver kolonnen skal blive så ens som muligt - automatisk, fremfor at brugeren selv skal indtaste og regne ud.

Resul.1 = 2
Resul.2 = 3
Resul.3 = 2
Resul.4 = 1
Resul.5 = 3
Resul.6 = 2
Resul.7 = 1
Resul.8 = 2
Resul.9 = 1
Resul.10 = 3

Kol1:
Resul.1
Resul.5
Resul.9
Sum = 6

Kol2:
Resul.2
Resul.4
Resul.7
Sum = 7

Kol3:
Resul.3
Resul.6
Resul.10
Sum = 7

Excel 2010.
http://img405.imageshack.us/img405/7929/expa.jpg
Avatar billede supertekst Ekspert
21. februar 2012 - 13:58 #1
Hvad er formålet - hvis man må spørge?
Avatar billede jasperDK Nybegynder
21. februar 2012 - 14:01 #2
Hjælp til dimensionering af en stikledning til et hus. Der er 3 faser (ledninger) som alle helst skal være ligeligt belastede.
Avatar billede supertekst Ekspert
21. februar 2012 - 14:25 #3
Ok - er der altid 10 resultater?
Avatar billede jasperDK Nybegynder
21. februar 2012 - 16:52 #4
Nej, det kan variere fra flere til færre. Men overskydende "resultat-felter" kan sættes til '0'.
Avatar billede supertekst Ekspert
21. februar 2012 - 17:59 #5
Ok - du kan prøve med denne:

OBS: I kol A er resultaterne - har taget en kopi af disse i Kol. B
Disse nulstilles efterhånden som de bliver brugt.

Dim sumA As Integer, antalRæk As Integer, ræk As Integer, gsnit As Double
Dim hVærdi As Integer, lVærdi As Integer
Sub test()
    housekeeping
   
    udførGennemløb 3
    udførGennemløb 4
    udførGennemløb 5
   
End Sub
Private Sub housekeeping()
    sumA = 0
    antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
   
    For ræk = 1 To antalRæk
        sumA = sumA + Range("A" & ræk)
    Next ræk
   
    gsnit = sumA / 3
   
    hVærdi = WorksheetFunction.RoundUp(gsnit, 0)
    lVærdi = WorksheetFunction.RoundDown(gsnit, 0)
End Sub
Private Sub udførGennemløb(kolonne)
Dim total As Integer, vægt As Integer
    total = 0
   
    For ræk = 1 To antalRæk
        If total < hVærdi Then
            vægt = Range("B" & ræk)
            If vægt <> 0 Then
              total = total + vægt
                Cells(ræk, kolonne) = vægt
                Range("B" & ræk) = 0
            End If
        Else
            If total = hVærdi Or total = lVærdi Then
                Exit Sub
            End If
        End If
   
    Next ræk
End Sub
Avatar billede jasperDK Nybegynder
22. februar 2012 - 11:32 #6
Hej Supertekst!

Først og fremmest: endnu en gang tak for hjælpen (med tanke på mine andre spørgsmål du har hjulpet med :) ).

Basis ideen med koden er rigtig god, dog er der et lille hængeparti, som kan føre til fejl. Den kan ikke mixe resultaterne i kolonnerne, altså pt. laves først kol3, så kol4 og til sidst kol5. Hvis der er for store variationer i resultaterne, så vil summene blive for forskellige.

Mål:
At i stedet for, at kol3 bliver defineret af de første resultater, så skal den kunne bruge både de første resultater, men også de midterste og sidste.


Jeg prøver at arbejde lidt videre med koden. Jeg vender tilbage med det samme, hvis jeg finder ud af noget.

På forhånd mange tak for hjælpen,
TTJ
Avatar billede supertekst Ekspert
22. februar 2012 - 11:46 #7
Hej TTJ

Selv tak - kunne ikke dy mig fra at prøve - vel vidende at udkastet ikke var helt anvendeligt.

Du giver blot signal ..

Mvh
Supertekst
Avatar billede jasperDK Nybegynder
29. marts 2012 - 16:57 #8
Hej igen,

Lang tid siden - men det er ikke fordi, at jeg har glemt mit problem! Jeg har arbejdet på det sideløbende med nogle af mine andre projekter, derfor har det taget mig så lang tid.

- Men det er ikke ensbetydende med, at jeg har løst problemet :) . Jeg giver det ekstra forsøg her i weekenden, ellers må brugeren selv  indtaste dataen i de respektive felter, (med auto summerings labels i bunden).

Mvh
Avatar billede jasperDK Nybegynder
10. april 2012 - 14:31 #9
Hej Supertekst,

Mine evner rækker ikke til mit ønske, desværre. Løsningen blev, at brugeren selv må indsætte dataen, men med en autoopdaterende label i bunden som giver summen.

Jeg takker for hjælpen,

På gensyn

Mvh
Avatar billede supertekst Ekspert
10. april 2012 - 14:53 #10
Det var så lidt..
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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