Avatar billede allanknudsen Nybegynder
04. januar 2013 - 04:50 Der er 1 løsning

Problem: Hjælp til programmering i VBA.

Jeg har tidligere med hjælp til VBA fra Eksperten udarbejdet et program i excel til beregning af min fremtidige økonomi efter skat år for år.

Programmet er bl.a opbygget med følgende ark:
"Likviditetoversigt"
"Lignmæssige fradrag"
"Skatteprogram"
efter følgende skabelon
D1 .............AE1 omfatter årstallene 2013 til  2038 og rækkerne under indeholder data for de forskellige årstal.
Dog ikke Skatteprogrammet, som bliver anvendt. Hvert års data fra de øvrige ark indgår i hvert års skatteberegning. Resultatet af hvert års beregnet skat (VBA) indsættes i likviditetsoversigten række 30 for de respektive år.

Nu har jeg suppleret regnearket med et nyt ark "ydelserogrenter".
Arket er opbygget på samme måde som de øvrige ark med
D1 .............AE1 som omfatter årstallene 2013 til 2038.
Række 8 indeholder låneydelserne for de respektive år og overføres for de respektive år til arket: "likviditetsoversigt" ved hjælp af formel.
Række 9 indeholder renteudgiften for de respektive år og skal indgå i skatteberegningen for de respektive år. Det er her mit problem opstår:
Hvordan for jeg tilrettet VBA så arket "ydelserogrenter" indgår i skatteprogrammet med række 9 renteudgiften for de respektive år? I skatteprogrammet skal renter posteres på kolonne E, række 40.

VBA ser i dag således ud:
Sub udregnSkatForAlleAar()
    Dim rRange As Range
    Dim rCell As Range
    Dim rCellCol As String
    Dim likviditetsoversigt As String
    Dim fradragsarkNavn As String
    Dim skatteberegningsarkNavn As String

        ' Navn på ark
        likviditetsoversigt = "Likviditetoversigt"
        fradragsarkNavn = "Lignmæssige fradrag"
        skatteberegningsarkNavn = "Skatteprogram"

        ' Sørger for, at det er cellerne i indkomst arket der benyttes i det følgende
        Sheets(likviditetsoversigt).Activate
       
        ' Finder de kolonner/år der skal udregnes skat for
        ' Så længe cellerne er udfyldt, vil de blive taget med i dataområdet.
        Set rRange = Range("D1", Range("XFD1").End(xlToLeft))
       
        ' Gennemgå alle årstallene
        For Each rCell In rRange

            ' Vi står p.t. i feltet med årstallet
           
            ' Hent kolonnenavn
            rCellCol = Split(rCell.Address, "$")(1)
           
            '
            ' ALLAN
            '
               
                ' Overfør lønindkomst
                Sheets(skatteberegningsarkNavn).Range("E30").Value = Sheets(likviditetsoversigt).Range(rCellCol & "7").Value
               
                ' Overfør overførselsindkomst
                Sheets(skatteberegningsarkNavn).Range("E32").Value = Sheets(likviditetsoversigt).Range(rCellCol & "16").Value
               
                ' Overfør fradrag
                ' Da kolonnerne ikke er på de samme pladser i likviditetsarket og fradragsarket
                ' så sørger offset her for, at vi rammer den rigtige celle.
                Sheets(skatteberegningsarkNavn).Range("E44").Value = Sheets(fradragsarkNavn).Range(rCellCol & "4").Offset(0, -1).Value
               
            '
            ' BENTE
            '
           
                ' Overfør lønindkomst
                Sheets(skatteberegningsarkNavn).Range("F30").Value = Sheets(likviditetsoversigt).Range(rCellCol & "20").Value
               
                ' Overfør overførselsindkomst
                Sheets(skatteberegningsarkNavn).Range("F32").Value = Sheets(likviditetsoversigt).Range(rCellCol & "27").Value
               
                ' Overfør fradrag
                ' Da kolonnerne ikke er på de samme pladser i likviditetsarket og fradragsarket
                ' så sørger offset her for, at vi rammer den rigtige celle.
                Sheets(skatteberegningsarkNavn).Range("F44").Value = Sheets(fradragsarkNavn).Range(rCellCol & "7").Offset(0, -1).Value
               
            '
            ' RESULTAT
            '
           
                ' Overfør resultat
                Sheets(likviditetsoversigt).Range(rCellCol & "30").Value = Sheets(skatteberegningsarkNavn).Range("E129").Value
               
           
            ' "Next rCell" sørger for at gå videre til næste celle i vores dataområde, dvs. næste årstal
           
        Next rCell
       
        ' Færdig
        MsgBox "Makro færdig"
       
End Sub

På forhånd tak for eventuel hjælp.
Allan
Avatar billede allanknudsen Nybegynder
03. februar 2013 - 15:25 #1
Lukket uden svar
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
Kurser inden for grundlæggende programmering

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