Avatar billede Laugesen1 Mester
02. januar 2011 - 23:04 Der er 10 kommentarer og
1 løsning

Insæt data fra et andet felt, betinget af værdien i et tredje felt.

Jeg skal have data indsat fra et andet felt, betinget af værdien i et tredje felt.

Eksempel:
Hvis A1 har værdien "J" skal værdien i B1 indsættes i C1, men værdien skal trækkes fra den værdi som C1 har i forvejen.

Er der nogen der kan hjælpe?

På forhånd tak
Laugesen
Avatar billede jkrons Professor
02. januar 2011 - 23:13 #1
Hvis du har J i A1, 10 i B1 og 100 i C1, skal der stå 90 i C1. Er det korrekt forstået?

Hvis ja, kan du ikke umiddelbart løse det med en formel, men skal nok ud i VBA - eller noget med at styre antallet af gentagelser i en manuel beregning.
Avatar billede Laugesen1 Mester
02. januar 2011 - 23:22 #2
Ja, det er rigtigt forstået, så skal C1 have værdien 90.
VBA har jeg ikke kendskab til.
Avatar billede Ialocin Novice
03. januar 2011 - 09:00 #3
Hej Laugesen

Hvad med om du bruger et ekstra felt til mellemregningen ??

A1 = J
B1 = 10
C1 = 100

D1 har følgende formel: =IF(A1="J";C1-B1;C1)

Med venlig hilsen, Nicolai
Avatar billede Laugesen1 Mester
03. januar 2011 - 12:51 #4
Hej Nicolai

Tak for dit svar, det virker helt fint med formlen for D1:
=IF(A1="J";C1-B1;C1)

Men jeg skal også have indsat en mulighed mere i formlen,
IF(A1="N"),så skal: B1=D1

Kan du også hjælpe med det?

Laugesen
Avatar billede jkrons Professor
03. januar 2011 - 14:31 #5
Så skal den formel du nævner indsættes i B1, og så kan du ikke længere taste i denne celle, uden at overskrive formlen, og så er du lige vidt.
Avatar billede Ialocin Novice
03. januar 2011 - 16:29 #6
Hej Laugesen

Jeg kigger lige på sagen i aften ;o)

Med venlig hilsen, Nicolai
Avatar billede Ialocin Novice
03. januar 2011 - 21:29 #7
Hej Laugesen

Du skriver tidligere, at du ikke har kendskab til VBA... trods det har jeg lavet lidt til dig i netop VBA :o)

VBA er Visual Basic for Applications, hvilket er en kodesprog/miljø som kan bruges til at udvide funktionaliteterne i MS Officepakkens applikationer ... herunder også Excel.

Jeg ved ikke hvilken version af Excel du benytter, men koden er lavet i Excel 2003 ... og lur mig om ikke den fungerer bredt?!

Lidt brugervejlledning:
Når du har åbnet din Excelfil taster du samtidig: ALT + F11
Hermed åbnes VBA editoren for din Excelfil.

I venstre side af editoren finder du dit VBAproject med samme navn som din Excelfil ... og under VBAproject findes de ark/faneblade, som din Excelfil indeholder.

Der findes også en "fil" kaldet "ThisWorkbook".
I "ThisWorkbook" kan man oprette generelle procedurer som gælder hele Excelfilen (Workbook´en).

Derfor:
Dobbeltklik på "ThisWorkbook" ... og kopier følgende kode ind i det tomme område til højre for dine VBAproject "filer":


------------------------------------


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error GoTo Err

'variabler til værdier i cellerne a, b, c og d
Dim a As Variant
Dim b As Variant
Dim c As Variant
Dim d As Variant

'koordinat variabel
Dim koordinat As String


'tildel y og x, det aktuelle række og kolonne nummer
y = Target.Row
x = Target.Column


'lav kolonne nummeret om til et bogstav
sbogstav = Replace(ActiveSheet.Cells(y, x).Address(False, False), y, "")


'samlede cellekoordinat på target cellen
koordinat = sbogstav & y

'værdierne fra kolonne b og c i den aktuelle række
b = Range("b" & y).Value
c = Range("c" & y).Value



'vælg case´en ud fra target kolonnen
Select Case sbogstav

    Case "A"
   
        'hvis der står j i kolonne a
        If Range("a" & y).Value = "j" Then

            Range("d" & y).Value = c - b
       
        'eller hvis der står n i kolonne a
        ElseIf Range("a" & y).Value = "n" Then
       
            b = Range("d" & y).Value

            Range("b" & y).Value = b
       
        'hvis andet i kolonne a
        Else
       
            'forlad proceduren
            Exit Sub
           

        End If
   
   
   
    Case "B"
   
        'hvis der står j i kolonne a
        If Range("b" & y).Value = "j" Then

            Range("d" & y).Value = c - b
       
        'eller hvis der står n i kolonne a
        ElseIf Range("b" & y).Value = "n" Then
       
            b = Range("d" & y).Value

            Range("b" & y).Value = b
       
        'hvis andet i kolonne a
        Else
       
            'forlad proceduren
            Exit Sub
           

        End If

   
   
    Case "C"
   
        'hvis der står j i kolonne a
        If Range("c" & y).Value = "j" Then

            Range("d" & y).Value = c - b
       
        'eller hvis der står n i kolonne a
        ElseIf Range("c" & y).Value = "n" Then
       
            b = Range("d" & y).Value

            Range("b" & y).Value = b
       
        'hvis andet i kolonne a
        Else
       
            'forlad proceduren
            Exit Sub
       
        End If
       
   
End Select




exit_cmd_Click:
    Exit Sub


'ved fejl
Err:

    Resume exit_cmd_Click

End Sub


--------------------------------------------



Luk VBA editoren og sig ja til at gemme, hvis den spø´r ?

Nu burde du kunne taste værdier ind i b og c celler og efterfølgende sætte et j eller et n i den tilhørende a celle.
Reslutatet skulle så gerne vise sig i d cellen ?

VBA hændelsen, som du kopierede ind bliver kaldt/aktiveret hver gang der ændres en værdi i a, b og c cellerne.
Jeg har dog ikke taget højde for rækkefølgen af dine indtastninger !!! ... samt tomme felter !!!
Slut eventuelt altid med j´et eller n´et i a cellen.

Prøv om det fungerer efter din hensigt ... så kan vi altid "idiotsikre" / finjusterer koden :o)

Med venlig hilsen, Nicolai
Avatar billede Laugesen1 Mester
04. januar 2011 - 01:06 #8
Hej Nicolai

Det virker med den formel du har lavet til mig, meget imponerende.
Når jeg først har givet A1 værdien "J" bliver udregningen udført i D1. Hvis jeg senere ændre A1 til "N", så bliver værdien fra D1 overført til B1. Super godt.
Som sagt, har jeg ikke kendskab til VBA, men har kikket lidt på den lange kode og tror godt jeg kan forstå at lave eventuelle ændringer, mht. til at angive andre celler i formlen.

Mange tak for hjælpen

Hilsen Laugesen
Avatar billede Ialocin Novice
04. januar 2011 - 11:30 #9
Hej Laugesen

Godt at høre, at det virker.
Og behold du bare de point, som du allerede har givet dig selv ;o)

Skulle du rende ind i spørgsmål omkring vba koden, så er du velkommen til at gi´ lyd på min mailadresse: nicolaifogt@gmail.com

Med venlig hilsen, Nicolai
Avatar billede Laugesen1 Mester
04. januar 2011 - 13:44 #10
Hej Nicolai

Ja, det er jo helt fint!
Du hjælper mig og jeg tildeler point til mig selv!
Det må du undskylde, jeg vidste ikke man kunne det.

Forslag:
Jeg laver nyt spørgsmål som du let kan genkende på sitet.
Du svarer kort og jeg tildeler dine point.

Venlig Hilsen
Laugesen
Avatar billede Ialocin Novice
04. januar 2011 - 20:29 #11
Hej Laugesen

Nej nej ... det er helt okay med mig :o)

Med venlig hilsen, Nicolai
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