|
Mírate este código a ver si te sirve:
'Utilizo un botón para eliminar la fila seleccionada
' posic es el total de filas-1 que tiene el flexgrid
' frmOfertas es el nombre del flexgrid
' numero_fila es la fila seleccionada (cuando se hace click en una celda se pone numero_fila = frmOfertas.Row)
' aPosic(100,6) es el array temporal donde meto lo que hay en el flexgrid frmOfertas
Private Sub cmdElimPos_Click()
Dim cuenta, i As Byte
Dim unis, msg As String
If posic < 1 Then 'Si no hay posiciones
MsgBox "No hay artículos a eliminar."
Else
If (numero_fila >= 1 And numero_fila <= posic) Then
msg = MsgBox("¿Está seguro que quiere eliminar la posición " & numero_fila & "?", vbYesNo, "ELIMINAR POSICIÓN")
If msg = vbYes Then
'Desde la fila seleccionada hasta el final meto lo del flexgrid en el array
For i = numero_fila To posic - 1
For cuenta = 0 To 5
aPosic(i, cuenta) = aPosic(i + 1, cuenta)
Next cuenta
Next i
'Borro la posicion actual
For cuenta = 0 To 5
aPosic(posic, cuenta) = ""
Next cuenta
posic = posic - 1
frmOfertas.fxgTabla.Rows = 1 'Sólo deja el título de las cols del Grid
For i = 1 To posic 'Desde la pos 1 hasta el final
frmOfertas.fxgTabla.Rows = frmOfertas.fxgTabla.Rows + 1
frmOfertas.fxgTabla.Col = 0 'Inserta una nueva fila y copia el contenido
frmOfertas.fxgTabla.Row = i 'del array en las filas del Grid
frmOfertas.fxgTabla.Text = i
frmOfertas.fxgTabla.Col = 1
frmOfertas.fxgTabla.Row = i
frmOfertas.fxgTabla.Text = aPosic(i, 1) 'Nombre
frmOfertas.fxgTabla.Col = 2
frmOfertas.fxgTabla.Row = i
frmOfertas.fxgTabla.Text = aPosic(i, 2) 'Descripcion
frmOfertas.fxgTabla.Col = 3
frmOfertas.fxgTabla.Row = i
frmOfertas.fxgTabla.Text = aPosic(i, 3) 'Unidades
frmOfertas.fxgTabla.Col = 4
frmOfertas.fxgTabla.Row = i
frmOfertas.fxgTabla.Text = Poner_Punto(Round(CDbl(Poner_Coma(aPosic(i, 4))), 2)) 'Precio
frmOfertas.fxgTabla.Col = 5
frmOfertas.fxgTabla.Row = i
frmOfertas.fxgTabla.Text = aPosic(i, 5) 'Tipo
Next i
numero_fila = posic
End If
End If
End If
End Sub
Espero que lo entiendas bien y que te sirva...
|