Funktion för att identifiera det senast inmatade värdet

Mha formler kan vi  identifiera det senast inmatade värdet i ett cellområde, som endast består av värden och tomma celler.

I många sammanhang, när vi bygger upp datablad, förekommer både värden, tomma celler och celler med formler i sig. Här kan vi inte med formler identifiera det senaste inmatade värdet i raden eller i kolumnen. Därtill krävs en VBA-baserad lösning såsom en funktion.

Följande funktion kan identifiera det senast inmatade värdet i raden eller i kolumnen, där även formler finns i det angivna cellområdet. Noterbart är att värdet 0 tilldelas om t ex inga angivna värden finns överhuvudtaget, vilket underlättar vid sammanställningar.
 

Option Explicit  

Function Sistavardet(CellOmrade As Range)

   '© 2002 Alla rättigheter XL-Dennis

   Dim i As Long, j As Long  

   i = CellOmrade.Rows.Count  

   On Error GoTo Felhantering:

 

   If i > 1 Then

      For j = i To 1 Step -1

         If CellOmrade(j, 1).HasFormula = False Then

            If Not IsEmpty(CellOmrade(j, 1)) Then

               Sistavardet = CellOmrade(j, 1).Value

               Exit Function

            Else

               Sistavardet = 0

            End If

         End If

      Next j

   Else

      i = CellOmrade.Columns.Count

      For j = i To 1 Step -1

         If CellOmrade(1, j).HasFormula = False Then

            If Not IsEmpty(CellOmrade(1, j)) Then

               Sistavardet = CellOmrade(1, j).Value

               Exit Function

            Else

               Sistavardet = 0

            End If

         End If

      Next j

   End If

   Exit Function

 

Felhantering:

   Sistavardet = CVErr(xlErrValue)

End Function