28. september 2007 - 07:59Der er
67 kommentarer og 1 løsning
Tabel ti insulinberegning
Jeg har tidligere rette spørgsmålet i Lille opgave i Excel, men har nu fået hjælp til at formulere opgaven mere præcist. Insulinberegning
Jeg er ved at lave et skema til beregning af dosering af insulin, er der nogen der kan hjælpe?
Jeg har 3 celler, B8, E8 og C14. Celle B8 udfyldes med den aktuelle værdi for blodsukker (AB). Celle E8 skal blive beregnet og udfyldt med en ny Actrapidinfusion (AI) og celle E14 skal blive beregnet og udfyldt med en tidsfaktor (KB) for næste kontrol.
Her er betingelserne:
Hvis AB er mindre end 4 AI stoppes KB 30 minutter
Hvis AB er fra 4,1 til 4,5 AI reduceres med 2 hvis aktuel AI er større end 5. AI reduceres med 0,5 hvis aktuel AI er mindre end eller lig med 5 KB 30 minutter
Hvis AB er fra 4,6 til 8,2 AI ingen ændring KB 2 timer
Hvis AB er fra 8,3 til 10 og tendensen er faldende AI ingen ændring KB 1 time
Hvis AB er fra 8,3 til 10 og tendensen er stabil eller stigende AI øges med 1 KB 1 time
Hvis AB er fra 10,1 til 14 og tendensen er faldende AI ingen ændring KB 1 time
Hvis AB er fra 10,1 til 14 og tendensen er stabil eller stigende AI øges med 1,5 KB 1 time
Hvis AB er fra 14,1 til 22 AI øges med 2 KB 1 time
Hvis AB er større end eller lig med 22 AI vurderes individuelt
For alle AB fra 4,6 til 14 og tendensen er faldende med mere end 50% AI reduceres med 50% KB 1 time
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Excel kan nok ikke alene beregne den formel der ska nok et eller andet program til. den insolin beregning må du aldrig bruge, fordi man må kun regulere med 2 enheder af gangen går ud fra at AI er enheder, der er ikke noget der hedder 1,5, virkningen af insolin er forskellig fra menneske til menneske og ændringen kan man først regne med 24 timer senere, en reducering på 50% er al for stor da der højst må ændres 2 enheder af gangen.
Så har jeg lidt til dig, du skal nok have filen tilsendt. Der skal nu nok helt sikker rettes i koden, især omkring den 1. gennemløb, hvad hvis AB < 8,3 eller > 22 men prøv koden, og vend tilbage
du kan også indsætte følgende overskrifter i et TOMT ark: F1: antal G1: aktuel AB H1: Beregnet AI I1: KB [min] J1: Tendensen K1: Tendensen % L1: nr
opret en knap og indsæt følgende kode: Private Sub Beregn_Click()
AB_aktuel = InputBox("Indtast aktuel AB")
nr = Range("L2") Range("L2") = nr + 1 If (nr = 0) Then ' 1. gang slet tidligere Range("F2:J11").Select Selection.Delete End If Range("L2") = nr + 1 Range("F" & nr + 2) = nr + 1 Range("G" & nr + 2) = AB_aktuel forrige_AI = Range("G" & nr + 1) If (nr = 0) Then ' 1. gang definer tidligere AI Select Case AB_aktuel Case Is < 8.3 forrige_AI = 1 Case 8.3 To 12 forrige_AI = 2 Case 12.1 To 22 forrige_AI = 4 Case Is > 22 forrige_AI = 1 End Select
End If
TendensenPCt = ((AB_aktuel / forrige_AI) - 1) * 100 Select Case TendensenPCt Case Is < 0 Tendensen = "faldende" Case 0 Tendensen = "stabil" Case Is > 0 Tendensen = "stigende" End Select Range("J" & nr + 2) = Tendensen Range("K" & nr + 2) = TendensenPCt
Select Case AB_aktuel
Case Is < 4.1 Ny_AI = 0 KB = 30 Case 4.1 To 4.5 If AB_aktuel > 5 Then Ny_AI = -2 KB = 30 Else Ny_AI = -0.5 KB = 30 End If
Case 4.6 To 8.2 Ny_AI = 0 KB = 120
Case 8.3 To 10 If Tendensen = "faldende" Then Ny_AI = 0 KB = 60 Else Ny_AI = 1 KB = 60 End If
Case 10.1 To 14 If Tendensen = "faldende" Then Ny_AI = 0 KB = 60 Else Ny_AI = 1.5 KB = 60 End If
Case 14.1 To 21.9 Ny_AI = 2 KB = 60
Case Is >= 22 Ny_AI = 300 KB = 0 End Select
If ((4.6 < Ny_AI < 14) And (Tendensen < -50)) Then Ny_AI = Ny_AI / 2 KB = 60 End If
Range("H" & nr + 2) = Ny_AI Range("I" & nr + 2) = KB
For at starte forfra i beregningerne skal du sætte L2=0 Der skal nok også ændres for hvornår det er faldende,stabil, stigende. lige nu er det kun stabil ved en tendens på 0%
AB_aktuel = InputBox("Indtast aktuel AB") If AB_aktuel = "" Then MsgBox ("Du har indtastet ugyldig værdi") Exit Sub End If nr = Range("L2") If (nr = 0) Then ' 1. gang slet tidligere Range("E2:k11").Select Selection.Delete Selection.Clear End If forrige_AI = Range("G" & nr + 1) If (nr = 0) Then ' 1. gang definer tidligere AI Select Case AB_aktuel Case Is < 8.3 forrige_AI = 1 Case 8.3 To 12 forrige_AI = 2 Case 12.1 To 22 forrige_AI = 4 Case Is > 22 forrige_AI = 1 Case Else MsgBox ("Forkert beregning i tidligere AI") Exit Sub End Select End If
TendensenPct = ((AB_aktuel / forrige_AI) - 1) * 100 Select Case TendensenPct Case Is < 0 Tendensen = "faldende" Case 0 Tendensen = "stabil" Case Is > 0 Tendensen = "stigende" Case Else MsgBox ("Forkert beregning af tendensen") Exit Sub End Select
Select Case AB_aktuel Case Is < 4.1 Ny_AI = 0 KB = "30 min" Case 4.1 To 4.5 If AB_aktuel > 5 Then Ny_AI = -2 KB = "30 min" Else Ny_AI = -0.5 KB = "30 min" End If Case 4.6 To 8.2 Ny_AI = 0 KB = " 2 timer" Case 8.3 To 10 If Tendensen = "faldende" Then Ny_AI = 0 KB = "1 time" Else Ny_AI = 1 KB = "1 time" End If Case 10.1 To 14 If Tendensen = "faldende" Then Ny_AI = 0 KB = "1 time" Else Ny_AI = 1.5 KB = "1 time" End If Case 14.1 To 21.9 Ny_AI = 2 KB = "1 time" Case Is >= 22 Ny_AI = 0 KB = "KB og AI skal vurderes individuelt" Case Else MsgBox ("Forkert aktuel AB") Exit Sub End Select
If ((4.6 < Ny_AI < 14) And (TendensenPct < -50)) Then Ny_AI = Ny_AI / 2 KB = "1 time" End If
If (nr = 0) Then Range("E1") = Date End If Range("L2") = nr + 1 Range("E" & nr + 2) = Time Range("F" & nr + 2) = nr + 1 Range("G" & nr + 2) = AB_aktuel Range("H" & nr + 2) = Ny_AI Range("I" & nr + 2) = KB Range("J" & nr + 2) = Tendensen Range("K" & nr + 2) = TendensenPct
Den første indtastede AB er grundlaget for start-infusionen. Altså ikke en beregnet infusion, men en indtastet infusion, givet af det første AB (AB 8,3-12 giver AI=2, og AB 12,1-22 giver AI=4). Herefter kommer de beregnede værdier af AI. Jeg har herefter kørt nogle tests hvor AB stiger fra 16 til 18, hvor det ser ud til at den beregnede AI ikke stiger med 2, som forventet. Herefter lader jeg AB falde til 4,6,(fald >50%) hvor jeg havde forventet en reduktion i AI med 50 %, men ser at programmet giver AI=0
Øøh jeg er overrasket jeg har ventet på dig. men jeg kan godt se at min sidste besked ikke er lagt op. hvorfor ved jeg ikke. men her kommer den igen:
havde misforstående det med øges med 2. hvad skal der ske hvis 1. værdi er <8,3 eller > 22
prøv denne kode: Private Sub Beregn_Click()
AB_aktuel = InputBox("Indtast aktuel AB") If AB_aktuel = "" Then MsgBox ("Du har indtastet ugyldig værdi") Exit Sub End If nr = Range("L2") forrige_AI = Range("H" & nr + 1) forrige_AB = Range("G" & nr + 1)
If (nr = 0) Then ' 1. gang ? Range("E2:k11").Select ' slet tidligere Selection.Delete Selection.Clear
forrige_AI = 0 TendensenPct = 0 Tendensen = "ukendt" Select Case AB_aktuel Case Is < 8.3 MsgBox ("Ukendt værdi for 1. beregning") Exit Sub Case 8.3 To 12 ny_AI = 2 Case 12.1 To 22 ny_AI = 4 Case Is > 22 MsgBox ("Ukendt værdi for 1. beregning") Exit Sub Case Else MsgBox ("Forkert beregning i tidligere AI") Exit Sub End Select
Else '
TendensenPct = ((AB_aktuel / forrige_AB) - 1) * 100 Select Case TendensenPct Case Is < 0 Tendensen = "faldende" Case 0 Tendensen = "stabil" Case Is > 0 Tendensen = "stigende" Case Else MsgBox ("Forkert beregning af tendensen") Exit Sub End Select
Select Case AB_aktuel Case Is < 4.1 ny_AI = forrige_AI + 0 KB = "30 min" Case 4.1 To 4.5 If AB_aktuel > 5 Then ny_AI = forrige_AI - 2 KB = "30 min" Else ny_AI = forrige_AI - 0.5 KB = "30 min" End If Case 4.6 To 8.2 ny_AI = forrige_AI + 0 KB = " 2 timer" Case 8.3 To 10 If Tendensen = "faldende" Then ny_AI = forrige_AI + 0 KB = "1 time" Else ny_AI = forrige_AI + 1 KB = "1 time" End If Case 10.1 To 14 If Tendensen = "faldende" Then ny_AI = forrige_AI + 0 KB = "1 time" Else ny_AI = forrige_AI + 1.5 KB = "1 time" End If Case 14.1 To 21.9 ny_AI = forrige_AI + 2 KB = "1 time" Case Is >= 22 ny_AI = 0 KB = "KB og AI skal vurderes individuelt" Case Else MsgBox ("Forkert aktuel AB") Exit Sub End Select If ((4.6 < ny_AI < 14) And (TendensenPct < -50)) Then ny_AI = ny_AI / 2 KB = "1 time" End If End If
If (nr = 0) Then ' udskriv Range("E1") = Date Range("E1").Select Selection.NumberFormat = "m/d/yyyy" End If Range("L2") = nr + 1 Range("E" & nr + 2) = Time Range("E" & nr + 2).Select Selection.NumberFormat = "hh:mm;@" Range("F" & nr + 2) = nr + 1 Range("G" & nr + 2) = AB_aktuel Range("H" & nr + 2) = ny_AI Range("I" & nr + 2) = KB Range("J" & nr + 2) = Tendensen Range("K" & nr + 2) = TendensenPct
Ja, det skal den også!. hvis du indtaster <8,3 eller > 22, det var en sikkerhed jeg lagde ind. da der som tidligere nævnt ikke stod noget om hvad der skulle ske, hvis 1. værdi < 8,3
Hej ilemming, Dette ser godt ud, men ved AB</=4 skal AI=0, og programmet skal states fra O igen efter kontrol blodsukker. Og hvis AI >5 så skal den nye AI reduceres med 2 hvis AB 4,1-4,5. Nu skal jo programmet køres i virkeligheden, og det kan hænde vi får brug for at justere nogle af betingelserne, har du nogle forslag til hvordan vi kan komme til dette, efter en prøveperiode. mvh P
hvad mener du med startes fra 0?, kan man sige at det skal nulstilles hvis AI=0? er det fint nok at tendensen kun er stabil ved 0 %, der skal ikke være et større spillerum f.eks +/- 5%. De to andre fejl har jeg rettet
AB_aktuel = InputBox("Indtast aktuel AB") If AB_aktuel = "" Then MsgBox ("Du har indtastet ugyldig værdi") Exit Sub End If nr = Range("L2") forrige_AI = Range("H" & nr + 1) forrige_AB = Range("G" & nr + 1)
If (nr = 0) Then ' 1. gang ? Range("E1:k15").Select ' slet tidligere Selection.Delete Selection.Clear
forrige_AI = 0 TendensenPct = 0 Tendensen = "ukendt" Select Case AB_aktuel Case Is < 8.3 MsgBox ("Værdi skal være mellem 8,3 og 22") Exit Sub Case 8.3 To 12 ny_AI = 2 KB = "30 min" Case 12.1 To 22 ny_AI = 4 KB = "30 min" Case Is > 22 MsgBox ("Værdi skal være mellem 8,3 og 22") Exit Sub Case Else MsgBox ("Forkert AB indtastet (kode1)") Exit Sub End Select Else ' TendensenPct = Round(((AB_aktuel / forrige_AB) - 1) * 100, 0) Select Case TendensenPct Case Is < 0 Tendensen = "faldende" Case 0 Tendensen = "stabil" Case Is > 0 Tendensen = "stigende" Case Else MsgBox ("Forkert beregning af tendensen") Exit Sub End Select
Select Case AB_aktuel Case Is < 4.1 ny_AI = 0 KB = "30 min" Case 4.1 To 4.5 If forrige_AI > 5 Then ny_AI = forrige_AI - 2 KB = "30 min" Else ny_AI = forrige_AI - 0.5 KB = "30 min" End If Case 4.6 To 8.2 ny_AI = forrige_AI + 0 KB = " 2 timer" Case 8.3 To 10 If Tendensen = "faldende" Then ny_AI = forrige_AI + 0 KB = "1 time" Else ny_AI = forrige_AI + 1 KB = "1 time" End If Case 10.1 To 14 If Tendensen = "faldende" Then ny_AI = forrige_AI + 0 KB = "1 time" Else ny_AI = forrige_AI + 1.5 KB = "1 time" End If Case 14.1 To 21.9 ny_AI = forrige_AI + 2 KB = "1 time" Case Is >= 22 ny_AI = -1 KB = "KB og AI skal vurderes individuelt" Case Else MsgBox ("Forkert AB indtastet (kode2)") Exit Sub End Select If ((4.6 < ny_AI < 14) And (TendensenPct < -50)) Then ny_AI = ny_AI / 2 KB = "1 time" End If End If
Ja når jeg opretter knappen i regne arket bliver koden: Private Sub CommandButton1_Click() men jeg går så tilbage til knappen iregne arket og i edit skriver jeg start på knappen,
Det er rigtige at det ikke skal være 0,75. men skal det ikke være 1,5 hvis første er 9,AI=2 anden 4,3 , AI=2-0,5
ifølge: Hvis AB er fra 4,1 til 4,5 AI reduceres med 2 hvis aktuel AI er større end 5. AI reduceres med 0,5 hvis aktuel AI er mindre end eller lig med 5 KB 30 minutter
Grund at knappen ikke virkede, var fordi var kommet til at ændre det. Da jeg arbejder på 2 maskiner
I dette interval 4,1-4,5 gælder: Reducer med 2 IE hvis aktuel infusion er<5IE/t Reducer med0,5 IE hvis aktuel infusion er ≤5 IE/t kontrol:30 min man kan sige at denne regel overruler den du nævner
Jeg beklager hvis det er forvirrende jeg har skemaet i et doc format jeg har prøvet at kopiere det ind her
Aktuelt blodsukker Blodsukker tendens Actrapidininfusion Kontrol Blodsukker ≤ 4 Stoppes 30 min
4,1-4,5 Reducer med 2 IE hvis aktuel infusion er<5IE/t Reducer med0,5 IE hvis aktuel infusion er ≤5 IE/t 30 min
4,6 -8,2 Ingen ændring = målområde 2 t 8,3 – 10 Faldende Stabil eller stigende Ingen ændring* Øges med 1 IE/t 1 t 10,1 - 14 Faldende Stabil eller stigende Ingen ændring* Øges med 1,5 IE/t 1 t 14,1 - 22 Øges med 2IE/t 1 t ≤ 22 Individuel vurdering
*Alle BS 4,6-14 Fald med >50% Reducer med 50% 1 t BS ≤4 : Rp Glucose 10% 100 ml= 10 g glukose Start med 2 IE/t når første blodsukker 8,3-12 Start med 4 IE/t når første blodsukker 12,1-22 Husk: tag altid højde for ændringer i ernæring og glukoseinfusion
God bedring, beklager hvis det har været modstridende udsagn.
I tilfældet hvor første AB=9 og næste AB= 4,3 er der et fald på mer end 50 %, følgelig skal AI halveres fra 2 til 1. Ved fald af AB på mer en 50 % er ALTID halvering af AI den "stærkeste" regel.
AB_aktuel = InputBox("Indtast aktuel AB") If AB_aktuel = "" Then MsgBox ("Du har indtastet ugyldig værdi") Exit Sub End If nr = Range("L2") forrige_AI = Range("H" & nr + 1) forrige_AB = Range("G" & nr + 1)
If (nr = 0) Then ' 1. gang ? Range("E1:k15").Select ' slet tidligere Selection.Delete Selection.Clear
forrige_AI = 0 TendensenPct = 0 Tendensen = "ukendt" Select Case AB_aktuel Case Is < 8.3 MsgBox ("Værdi skal være mellem 8,3 og 22") Exit Sub Case 8.3 To 12 ny_AI = 2 KB = "30 min" Case 12.1 To 22 ny_AI = 4 KB = "30 min" Case Is > 22 MsgBox ("Værdi skal være mellem 8,3 og 22") Exit Sub Case Else MsgBox ("Forkert AB indtastet (kode1)") Exit Sub End Select Else ' TendensenPct = Round(((AB_aktuel / forrige_AB) - 1) * 100, 0) Select Case TendensenPct Case Is < 0 Tendensen = "faldende" Case 0 Tendensen = "stabil" Case Is > 0 Tendensen = "stigende" Case Else MsgBox ("Forkert beregning af tendensen") Exit Sub End Select
Select Case AB_aktuel Case Is < 4.1 ny_AI = 0 KB = "30 min" Case 4.1 To 4.5 If forrige_AI < 5 Then ny_AI = forrige_AI - 2 KB = "30 min" Else ny_AI = forrige_AI - 0.5 KB = "30 min" End If Case 4.6 To 8.2 ny_AI = forrige_AI + 0 KB = " 2 timer" Case 8.3 To 10 If Tendensen = "faldende" Then ny_AI = forrige_AI + 0 KB = "1 time" Else ny_AI = forrige_AI + 1 KB = "1 time" End If Case 10.1 To 14 If Tendensen = "faldende" Then ny_AI = forrige_AI + 0 KB = "1 time" Else ny_AI = forrige_AI + 1.5 KB = "1 time" End If Case 14.1 To 21.9 ny_AI = forrige_AI + 2 KB = "1 time" Case Is >= 22 ny_AI = -1 KB = "KB og AI skal vurderes individuelt" Case Else MsgBox ("Forkert AB indtastet (kode2)") Exit Sub End Select If ((AB_aktuel > 4#) And (AB_aktuel < 14) And (TendensenPct < -50)) Then ny_AI = forrige_AI / 2 KB = "1 time" End If End If
Mange tak, nu virker det. Kan det laves at værdier over 22 er ugyldige værdier, så de ikke medregnes i de følgende beregninger. Er det muligt at de celler der er til højre for kolonne L kan fyldes med en farve, når der laves en beregning forsvinder farven i de øverste 15 rækkker Mvh P
Det var da dejligt at høre :-). Hvad skal der regnes med istedet for de 22 ? ang. farverne?? skal der kun være farve når der ikke har været indtastet noget?
Det med farverne er nemmeste at lave på følgende måde: vælg i menulinien: format, con. formatting, vælg formular, indsæt denne formel =$L$2>0, vælg den ønsket farve under "format", "OK". kopier cellen ved at trække med musen. Så skifter cellerne farve når L2>0
AB_aktuel = InputBox("Indtast aktuel AB") If AB_aktuel = "" Then MsgBox ("Du har indtastet ugyldig værdi") Exit Sub End If nr = Range("L2") forrige_AI = Range("H" & nr + 1) forrige_AB = Range("G" & nr + 1)
If (nr = 0) Then ' 1. gang ? Range("E1:k15").Select ' slet tidligere Selection.Clear
forrige_AI = 0 TendensenPct = 0 Tendensen = "ukendt" Select Case AB_aktuel Case Is < 8.3 MsgBox ("Værdi skal være mellem 8,3 og 22") Exit Sub Case 8.3 To 12 ny_AI = 2 KB = "30 min" Case 12.1 To 22 ny_AI = 4 KB = "30 min" Case Is > 22 MsgBox ("Værdi skal være mellem 8,3 og 22") Exit Sub Case Else MsgBox ("Forkert AB indtastet (kode1)") Exit Sub End Select Else ' TendensenPct = Round(((AB_aktuel / forrige_AB) - 1) * 100, 0) Select Case TendensenPct Case Is < 0 Tendensen = "faldende" Case 0 Tendensen = "stabil" Case Is > 0 Tendensen = "stigende" Case Else MsgBox ("Forkert beregning af tendensen") Exit Sub End Select
Select Case AB_aktuel Case Is < 4.1 ny_AI = 0 KB = "30 min" Case 4.1 To 4.5 If forrige_AI < 5 Then ny_AI = forrige_AI - 2 KB = "30 min" Else ny_AI = forrige_AI - 0.5 KB = "30 min" End If Case 4.6 To 8.2 ny_AI = forrige_AI + 0 KB = " 2 timer" Case 8.3 To 10 If Tendensen = "faldende" Then ny_AI = forrige_AI + 0 KB = "1 time" Else ny_AI = forrige_AI + 1 KB = "1 time" End If Case 10.1 To 14 If Tendensen = "faldende" Then ny_AI = forrige_AI + 0 KB = "1 time" Else ny_AI = forrige_AI + 1.5 KB = "1 time" End If Case 14.1 To 21.9 ny_AI = forrige_AI + 2 KB = "1 time" Case Is >= 22 ny_AI = 0 KB = "KB og AI skal vurderes individuelt" Case Else MsgBox ("Forkert AB indtastet (kode2)") Exit Sub End Select If ((AB_aktuel > 4#) And (AB_aktuel < 14) And (TendensenPct < -50)) Then ny_AI = forrige_AI / 2 KB = "1 time" End If End If
Hej. Ved nærmere eftertanke er det faktisk uhænsigtsmæssigt at programmet nulstilles efter 22. Det bedste ville faktisk være hvis værdier over 22 betragtes som ugyldige, og næste beregning tager udgangspunkt i den foregående (gyldige) beregning.
AB_aktuel = InputBox("Indtast aktuel AB") If AB_aktuel = "" Then MsgBox ("Du har indtastet ugyldig værdi") Exit Sub End If nr = Range("L2") forrige_AI = Range("H" & nr + 1) forrige_AB = Range("G" & nr + 1)
If (forrige_AB >= 22) Then ' hvis forrige var >22 indlæs forrige forrige værdier forrige_AI = Range("H" & nr) forrige_AB = Range("G" & nr) End If
If (nr = 0) Then ' 1. gang ? Range("E1:k15").Select ' slet tidligere Selection.Clear
forrige_AI = 0 TendensenPct = 0 Tendensen = "ukendt" Select Case AB_aktuel Case Is < 8.3 MsgBox ("Værdi skal være mellem 8,3 og 22") Exit Sub Case 8.3 To 12 ny_AI = 2 KB = "30 min" Case 12.1 To 22 ny_AI = 4 KB = "30 min" Case Is > 22 MsgBox ("Værdi skal være mellem 8,3 og 22") Exit Sub Case Else MsgBox ("Forkert AB indtastet (kode1)") Exit Sub End Select Else ' TendensenPct = Round(((AB_aktuel / forrige_AB) - 1) * 100, 0) Select Case TendensenPct Case Is < 0 Tendensen = "faldende" Case 0 Tendensen = "stabil" Case Is > 0 Tendensen = "stigende" Case Else MsgBox ("Forkert beregning af tendensen") Exit Sub End Select
Select Case AB_aktuel Case Is < 4.1 ny_AI = 0 KB = "30 min" Case 4.1 To 4.5 If forrige_AI < 5 Then ny_AI = forrige_AI - 2 KB = "30 min" Else ny_AI = forrige_AI - 0.5 KB = "30 min" End If Case 4.6 To 8.2 ny_AI = forrige_AI + 0 KB = " 2 timer" Case 8.3 To 10 If Tendensen = "faldende" Then ny_AI = forrige_AI + 0 KB = "1 time" Else ny_AI = forrige_AI + 1 KB = "1 time" End If Case 10.1 To 14 If Tendensen = "faldende" Then ny_AI = forrige_AI + 0 KB = "1 time" Else ny_AI = forrige_AI + 1.5 KB = "1 time" End If Case 14.1 To 21.9 ny_AI = forrige_AI + 2 KB = "1 time" Case Is >= 22 ny_AI = 0 KB = "KB og AI skal vurderes individuelt" Case Else MsgBox ("Forkert AB indtastet (kode2)") Exit Sub End Select If ((AB_aktuel > 4#) And (AB_aktuel < 14) And (TendensenPct < -50)) Then ny_AI = forrige_AI / 2 KB = "1 time" End If End If
hej igen, kan der være en fejli programmet: f.eks hvis en givet værdi er 9 og næste er 23, når så den næste værdi indtastes vises Run-time error '1004' : Metod 'Range' of object'_Worksheet' failed
AB_aktuel = InputBox("Indtast aktuel AB") If AB_aktuel = "" Then MsgBox ("Du har indtastet ugyldig værdi") Exit Sub End If nr = Range("L2") forrige_AI = Range("H" & nr + 1) forrige_AB = Range("G" & nr + 1)
If (forrige_AB >= 22) And IsNumeric(forrige_AB) Then ' hvis forrige var >22 indlæs forrige forrige værdier forrige_AI = Range("H" & nr) forrige_AB = Range("G" & nr) End If
If (nr = 0) Then ' 1. gang ? Range("E1:k15").Select ' slet tidligere Selection.Clear
forrige_AI = 0 TendensenPct = 0 Tendensen = "ukendt" Select Case AB_aktuel Case Is < 8.3 MsgBox ("Værdi skal være mellem 8,3 og 22") Exit Sub Case 8.3 To 12 ny_AI = 2 KB = "30 min" Case 12.1 To 22 ny_AI = 4 KB = "30 min" Case Is > 22 MsgBox ("Værdi skal være mellem 8,3 og 22") Exit Sub Case Else MsgBox ("Forkert AB indtastet (kode1)") Exit Sub End Select Else ' TendensenPct = Round(((AB_aktuel / forrige_AB) - 1) * 100, 0) Select Case TendensenPct Case Is < 0 Tendensen = "faldende" Case 0 Tendensen = "stabil" Case Is > 0 Tendensen = "stigende" Case Else MsgBox ("Forkert beregning af tendensen") Exit Sub End Select
Select Case AB_aktuel Case Is < 4.1 ny_AI = 0 KB = "30 min" Case 4.1 To 4.5 If forrige_AI < 5 Then ny_AI = forrige_AI - 2 KB = "30 min" Else ny_AI = forrige_AI - 0.5 KB = "30 min" End If Case 4.6 To 8.2 ny_AI = forrige_AI + 0 KB = " 2 timer" Case 8.3 To 10 If Tendensen = "faldende" Then ny_AI = forrige_AI + 0 KB = "1 time" Else ny_AI = forrige_AI + 1 KB = "1 time" End If Case 10.1 To 14 If Tendensen = "faldende" Then ny_AI = forrige_AI + 0 KB = "1 time" Else ny_AI = forrige_AI + 1.5 KB = "1 time" End If Case 14.1 To 21.9 ny_AI = forrige_AI + 2 KB = "1 time" Case Is >= 22 ny_AI = 0 KB = "KB og AI skal vurderes individuelt" Case Else MsgBox ("Forkert AB indtastet (kode2)") Exit Sub End Select If ((AB_aktuel > 4#) And (AB_aktuel < 14) And (TendensenPct < -50)) Then ny_AI = forrige_AI / 2 KB = "1 time" End If End If
Hej, programmet virker fint:-) nu bliver det prøvet. Efter en periode (3mdr.)kan det vurderes om kalibreringen af forholdet mellem tid og dosering er passende. Er 200 point nok?
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.