Avatar billede lotteklump Nybegynder
27. juni 2008 - 17:11 Der er 3 kommentarer og
1 løsning

Hjælp til formel

Har ledt efter om samma slags spørgsmål findes, men kan ikke umiddelbart se noget der kan hjælpe mig. Sagen er den at jeg har et regneark hvor der i ark1 er en kolonne med ydelsesnumre (b15:b39)og en kolonne med beløb (e15:e39) og i ark2 har jeg en kolonne med tilskud (c3:c44) og en kolonne med tilskudsprocent (d3:d44) i kolonnen med tilskud vil jeg have alle tilskud automatisk skal komme frem når jeg taster et beløb ind i kolonnen med beløb i ark1. Kolonnen med tilskud skal komme frem fra beløbet * tilskuds%. HVad gør jeg? Nogle tilskud er faste og derfor ikke med en % af beløbet.
Avatar billede supertekst Ekspert
27. juni 2008 - 18:26 #1
Hvis muligt er du velkommen til at sende din fil til: pb@supertekst-it.dk
gerne med et eksempel, der illustrere det du gerne vil have.

En mulig løsning vil sandsynligvis blive via en makro....
Avatar billede lotteklump Nybegynder
27. juni 2008 - 18:33 #2
Så der sendt eksempel, tak fordi du gider se på det
Avatar billede supertekst Ekspert
28. juni 2008 - 00:09 #3
Følgende forslag er sendt:

Rem Koden er indlagt under Ark1
Rem ===========================
Const startRækArk2 = 3
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tilskud
Rem Aktiveres, når der indtastes beløb i Ark1 kolonne E

    If Not Intersect(Target, Range("E4:E13")) Is Nothing Then
Rem Hvis beløb = 0 - så nulstil Tilskud
        If Target.Value = 0 Then
            Target.Offset(0, 1) = 0
        Else
Rem Find evt. tilskud
            tilskud = findTilskud(Target.Offset(0, -3), Target.Value)
            Target.Offset(0, 1) = tilskud
        End If
    End If
End Sub
Private Function findTilskud(ydelsesNr, beløb)
Dim ark2 As Worksheet
Dim tilskud, max, fast
Rem henter data fra Ark2
   
    Set ark2 = ActiveWorkbook.Sheets(2)
    With ark2
        For ræk = startRækArk2 To 65000
Rem Tom celle fundet i kolonne B
            If .Cells(ræk, 2) = "" Then
Rem YdelsesNr. kunne ikke findes
                MsgBox ("YdelsesNr.: " & CStr(ydelsesNr) & " kunne ikke findes")
                findTilskud = 0
                Exit Function
            End If
           
            If .Cells(ræk, 2) = ydelsesNr Then
                tilskud = .Cells(ræk, 4)
                max = .Cells(ræk, 5)
                fast = .Cells(ræk, 3)
Rem Er tilskuds-% udfyldt
                If tilskud <> "" Then
                    findTilskud = tilskud * beløb
Rem er tilskudsbeløb > maks - så giv kun maks
                    If findTilskud > max Then
                        findTilskud = max
                    End If
                    Exit Function
Rem er der anført fast tilskud
                Else
                    findTilskud = fast
                    Exit Function
                End If
            End If
        Next ræk
    End With
End Function
Avatar billede supertekst Ekspert
30. juni 2008 - 11:27 #4
Ovennævnte kode blev justeret med hensyn til et par kolonnenr på ark2 - hvorefter det fungerede.
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

IT-JOB

Netcompany A/S

Linux Operations Engineer

Styrelsen for Grøn Arealomlægning og Vandmiljø

Teamleder til Application Management

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Teknisk systemansvarlig / ingeniør inden for taktisk datalink