Eu tenho uma rotina que funciona assim, selecinar o cliente da grid.
'Primeiro vamos montar a grid
'Rotina criada para montar a grid de Clientes
Private Sub MontaGridCliente()
With GrdCliente
.Rows = 1
.Cols = 3
'Escreve o cabeçalho da Grid
.TextMatrix(0, 0) = "SEL"
.TextMatrix(0, 1) = "IDCliente"
.TextMatrix(0, 2) = "Nome Cliente"
'Define o tamanho de cada coluna
.ColWidth(0) = 500
.ColWidth(1) = 0
.ColWidth(2) = 3800
'Deve o tipo de alinhamento de cada coluna
.ColAlignment(0) = 4
.ColAlignment(1) = 4
.ColAlignment(2) = 4
End With
End Sub
Depois ao clicar vamos selecionar a linha.Serve para qualqure FlexGrid, coloque isso num módulo.
Public Sub SelecionaLinha(pGrid)
Dim w_i As Integer
Dim i As Integer
Dim mLinha As Integer
mLinha = pGrid.Row
With pGrid
'limpa a linha selecionada
For i = 1 To pGrid.Rows - 1
If pGrid.TextMatrix(i, 0) = "X" Then
pGrid.Row = i
pGrid.TextMatrix(.Row, 0) = ""
'Muda a cor das células para branco
For w_i = 0 To .Cols - 1
.Col = w_i
.CellBackColor = vbWhite
Next
End If
Next
.Row = mLinha
'Verifica se o grid possui alguma linha
If .Rows > 1 Then
'Verifica se a coluna é a primeira (a de seleção da nota)
'If .Col = 0 Then
'Ajusta o layout da célula
.Col = 0
.CellFontBold = True
.CellFontName = "Arial"
.CellFontSize = 10
.CellAlignment = 5
'Verifica se a célula já está preenchida com o "X", ou seja já havia sido selecionada
If .TextMatrix(.Row, 0) = "X" Then
'Remove o "X" (tira a seleção)
.TextMatrix(.Row, 0) = ""
'Muda a cor das células para branco
For w_i = 0 To .Cols - 1
.Col = w_i
.CellBackColor = vbWhite
Next
Else
'Coloca o "X" na célula, indicando a seleção do registro (nota fiscal)
.TextMatrix(.Row, 0) = "X"
'Muda a cor das células para cor de rosa, indicando que o registro foi selecionado
For w_i = 0 To .Cols - 1
.Col = w_i
.CellBackColor = &HC0E0FF
Next
End If
'End If
End If
End With
End Sub
Depois chame a rotina
Call SelecionaLinha(GrdCliente)
Eu tenho isso funcionando para impressão de notas fiscais, onde os campos das notas são parametros, e tudo dentro da nota é parametrizado, não sei se isso vai te atender, mas conforme for, usa o print do vb, ai vc pode usar a criatividade.
Falow