Gå til innhold

Anbefalte innlegg

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 av Petit
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...