Petit Skrevet 30. november 2010 Del Skrevet 30. november 2010 (endret) Hei! (endret`!) Skal lage en makro som går igjennom en medlemsliste og skriver ut medlemmenes energiforbruk i en kolonne (utstartcelle) i samme regneark som inndata ("Medlemmer"). Så langt har jeg kludret meg frem til dette: Sub MedlemEnergiF() Dim Rekke, Kolonne, Kjønn, Alder, Høyde, Vekt, Aktivitetsnivå, kjønnsfaktor Dim Startcelle Startcelle = Range("Startcelle") Rekke = Range("Startcelle").Row Kolonne = Range("Startcelle").Column Kjønn = Worksheets("Medlemmer").Cells(Rekke, Kolonne).Value Alder = Worksheets("Medlemmer").Cells(Rekke, Kolonne + 1).Value Høyde = Worksheets("Medlemmer").Cells(Rekke, Kolonne + 2).Value Vekt = Worksheets("Medlemmer").Cells(Rekke, Kolonne + 3).Value Aktivitetsnivå = Worksheets("Medlemmer").Cells(Rekke, Kolonne + 4).Value With Worksheets("Medlemmer") Do Until Cells(Rekke, Kolonne - 5).Value = "" If .Cells(Rekke, Kolonne) <> "" And .Cells(Rekke, Kolonne + 1) <> "" And .Cells(Rekke, Kolonne + 2) <> "" And .Cells(Rekke, Kolonne + 3) And .Cells(Rekke, Kolonne + 4) <> "" Then .Cells(Rekke, Kolonne + 5) = Energiforbruk(Høyde, Vekt, Alder, Kjønn, Aktivitetsnivå) Else .Cells(Rekke, Kolonne + 5) = ("Mangler data") End If Rekke = Rekke + 1 Loop End With End Sub Function Energiforbruk(Høyde, Vekt, Alder, Kjønn, Aktivitetsnivå) Dim kjønnsfaktor, aktivitetsfaktor Const conMann = 5 Const conKvinne = -161 Const conLav = 1.3 Const conVanlig = 1.4 Const conHøy = 1.5 If UCase(Aktivitetsnivå) = "HØYT" Then If UCase(Kjønn) = "M" Then kjønnsfaktor = conMann ElseIf UCase(Kjønn) = "K" Then kjønnsfaktor = conKvinne End If aktivitetsfaktor = conHøy End If If UCase(Aktivitetsnivå) = "VANLIG" Then If UCase(Kjønn) = "M" Then kjønnsfaktor = conMann ElseIf UCase(Kjønn) = "K" Then kjønnsfaktor = conKvinne End If aktivitetsfaktor = conVanlig End If If UCase(Aktivitetsnivå) = "LAVT" Then If UCase(Kjønn) = "M" Then kjønnsfaktor = conMann ElseIf UCase(Kjønn) = "K" Then kjønnsfaktor = conKvinne End If aktivitetsfaktor = conLav End If Energiforbruk = ((((Vekt * 10) + (Høyde * 6.25) - (Alder * 5) + (kjønnsfaktor)) * aktivitetsfaktor)) End Function ____ Så langt regner den bare ut for det øverste medlemmet og virker ikke som den oppdaterer rekketelleren? Hva er galt? Takk. Endret 1. desember 2010 av Petit 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å