Kumulativ celle (kumulativ)

Indhold

Ganske ofte opstår der en situation, hvor vi skal opsummere (akkumulere) flere værdier sekventielt indtastet i en celle:

De der. hvis du for eksempel indtaster tallet 1 i celle A5, så skal tallet 1 stå i B15. Hvis du så indtaster tallet 1 i A7, så skal 1 vises i celle B22, og så videre. Generelt, hvad revisorer (og ikke kun dem) kalder en kumulativ total.

Du kan implementere en sådan lagercelle-akkumulator ved hjælp af en simpel makro. Højreklik på arkfanen, hvor cellerne A1 og B1 er placeret, og vælg fra kontekstmenuen Kildetekst (Kildekode). Kopier og indsæt den simple makrokode i Visual Basic-editorvinduet, der åbnes:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target If .Address(False, False) = "A1" Then If IsNumeric(.Value) Then Application.EnableEvents = False Range("A2").Value = Range(" A2").Value + .Value Application.EnableEvents = True End If End If End With End Sub  

Adresserne på cellerne A1 og A2 kan selvfølgelig erstattes med dine egne.

Hvis du har brug for at spore dataindtastning og ikke opsummere individuelle celler, men hele områder, skal makroen ændres lidt:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Not Intersect(Target, Range("A1:A10")) Is Nothing Then If IsNumeric(Target.Value) Then Application.EnableEvents = False Target.Offset(0, 1) .Value = Target.Offset(0, 1).Value + Target.Value Application.EnableEvents = True End If End If End Sub  

Det antages, at data indtastes i cellerne i området A1:A10, og de indtastede tal summeres i den tilstødende kolonne til højre. Hvis det i dit tilfælde ikke er tilstødende, så øg skiftet til højre i Offset-operatøren – udskift 1 med et større tal.

  • Hvad er makroer, hvor skal man indsætte makrokode i VBA, hvordan bruger man dem?

Giv en kommentar