Dim server As BASICATLSERVERLib.IArrayAccess

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If server Is Nothing Then
        Set server = New BASICATLSERVERLib.TheCoClass
    End If
    Dim arr As Variant
    Dim v As Variant
    Dim i As Integer
    i = 0
    arr = server.getArray
    For Each v In arr
        Target.Offset(i, 0).Value = v
        i = i + 1
    Next v
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If server Is Nothing Then
        Set server = New BASICATLSERVERLib.TheCoClass
    End If
    If Not IsEmpty(Target) Then
        Target.Cells(Target.Cells.Count).Offset(0, 3).Value = _
                server.Sum(takeNumericalValuesFromRange(Target))
    End If
End Sub


Function takeNumericalValuesFromRange(Target As Range) As Variant
    Dim c As Range
    Dim i As Integer
    Dim result() As Variant
    ReDim result(1 To Target.Cells.Count)
    i = LBound(result)
    For Each c In Target.Cells
        If Not IsEmpty(c) And IsNumeric(c) Then
            result(i) = c.Value
            i = i + 1
        End If
    Next c
    ReDim Preserve result(LBound(result) To i - 1)
    takeNumericalValuesFromRange = result
End Function





Hosted by www.Geocities.ws

1