'DECLARAÇÕES
Dim i As Long, j As Long
Dim l_inicial As Long, c_inicial As Long
Dim l_final As Long, c_final As Long
Dim cSoma As Currency, iTemp As Long
No eventos mouseup e mousedown do Flexgrid:
Private Sub MSHF_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
l_inicial = MSHF.Row
c_inicial = MSHF.Col
End Sub
Private Sub MSHF_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
l_final = MSHF.RowSel
c_final = MSHF.ColSel
End Sub
Agora sabemos as coordenas, ou seja, onde começa e termina a seleção feita. Coloque um botão de comando e uma label e coloque o código no evento click do botão:
Private Sub Command1_Click()
If c_inicial > c_final Then
iTemp = c_final
c_final = c_inicial
c_inicial = iTemp
End If
If l_inicial > l_final Then
iTemp = l_final
l_final = l_inicial
l_inicial = iTemp
End If
For j = c_inicial To c_final
For i = l_inicial To l_final
cSoma = cSoma + CCur(MSHF.TextMatrix(i, j))
Next
Next
Label1 = cSoma: cSoma = 0
End Sub
Pronto!! Vc soma não só as linhas de uma coluna como quantas linhas de quantas colunas existirem no grid só dependendo da sua seleção.
Qualquer dúvida é só postar.
at+