Avatar billede vango6 Praktikant
02. september 2010 - 15:25 Der er 4 kommentarer og
1 løsning

problem med cirkulære forbindelse

Hejsa

Jeg har et ark, til beregning af tryktab i ventilationsrør,
mit problem opstår ved indtastning af luftmængder, da jeg har 3 kolonner: A = [m³/h], B = [l/s], C = [m³/s],
forholdet mellem dem er ikke noget problem, men det er forskelligt hvilken en af værdierne man for opgivet, så det skulle gerne være underordnet hvilken kolonne, A,B eller C, man taster i så skal de to andre udfyldes.

Beregnings tal:
A = B*3,6 og C*3600
B = A/3,6 og C*1000
C = A/3600 og B/1000

På forhånd tak
Avatar billede vango6 Praktikant
03. september 2010 - 00:11 #1
jeg ved ikke om det kan løses med noget VBA kode?
Avatar billede panebb Novice
03. september 2010 - 08:18 #2
en måde kan være at lave 3 resultatceller:
I A1, B1 og C1 har du dine indtastninger
I A2, B2 og C2 dine formler.

I celle A2: =HVIS(B1>0,01;B1*3,6;HVIS(C1>0,01;C1*3600))
I celle B2: =HVIS(A1>0,01;A1*3,6;HVIS(C1>0,01;C1*3600))
I celle C2: =HVIS(A1>0,01;A1*3,6;HVIS(B1>0,01;B1*3600))
Avatar billede vango6 Praktikant
03. september 2010 - 08:54 #3
Ja det kan man, men det er ikke lige det jeg har brug for.
der er ikke plads til 3 kolonner mere på siden har 16 forskellige kolonner

og beregningerne ser sådan ud:
I celle A2: =HVIS(B1>0,01;B1*3,6;HVIS(C1>0,01;C1*3600))
I celle B2: =HVIS(A1>0,01;A1/3,6;HVIS(C1>0,01;C1*1000))
I celle C2: =HVIS(A1>0,01;A1/3600,6;HVIS(B1>0,01;B1/1000))
Avatar billede vango6 Praktikant
10. september 2010 - 03:12 #4
Så fik jeg selv løst mit problem, med VBA :)

det kom til at se sådan her ud:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rownr
rownr = Range(Target.Address).Row
   
    If rownr > 6 Then
   
        If Range("D" & rownr).Value <> "" Or Range("E" & rownr).Value <> "" Or Range("F" & rownr).Value <> "" Then
       
            If (Number2Char(Range(Target.Address).Column) = "D" And Range(Target.Address).Row = rownr And Range("E" & rownr) = "" And Range("F" & rownr) = "") Then
                Range("E" & rownr).Value = Range("D" & rownr) / 3.6
                Range("F" & rownr).Value = Range("D" & rownr) / 3600
            End If
       
            If (Number2Char(Range(Target.Address).Column) = "E" And Range(Target.Address).Row = rownr And Range("F" & rownr) = "" And Range("D" & rownr) = "") Then
                Range("D" & rownr).Value = Range("E" & rownr) * 3.6
                Range("F" & rownr).Value = Range("E" & rownr) / 1000
            End If
       
            If (Number2Char(Range(Target.Address).Column) = "F" And Range(Target.Address).Row = rownr And Range("D" & rownr) = "" And Range("E" & rownr) = "") Then
                Range("D" & rownr).Value = Range("F" & rownr) * 3600
                Range("E" & rownr).Value = Range("F" & rownr) * 1000
            End If
       
        End If
   
    End If
   
End Sub

Function Number2Char(c As Integer) As String
  Number2Char = Split(Cells(1, c).Address, "$")(1)
End Function
Avatar billede panebb Novice
10. september 2010 - 09:02 #5
fint at se løsningen, også når spørger selv finder en løsning.
træls når en interessant tråd afsluttes med: jeg har selv fundet ud af det, uden beskrivelse med hvad. Vi er mange der finder løsninger i en gammel tråd med samme problem, som vi selv tumler rundt i :-)
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