Visual Basic - NUMEROS INFERIOR A ..(MSFLEXGRID)

Life is soft - evento anual de software empresarial
 
Vista:

NUMEROS INFERIOR A ..(MSFLEXGRID)

Publicado por CATITA ZARATE (2 intervenciones) el 03/12/2005 01:38:51
NECESITO QUE LA COLUMNA(6) ACEPTE SOLO NUMEROS INFERIOR AL DE LA COLUMNA(5), OBIAMENTE EN LA MISMA FILA
HE TRATADO DE HACERLO DE MUCHAS MANERAS PERO NO ME RESULTA . AQUÍ LES MANDO EL CODIGO QUE ESTOY TRABAJANDO. ESPERO QUE ME AYUDEN POR FAVOR GRACIAS…
ATTE CATITA ZARATE

‘trata que el focus permanesca en la celda seleccionada de la columna = 6
Private Sub MSFlexGrid1_Click()
With MSFlexGrid1
For k = 1 To .Rows - 1
If IsNumeric(.TextMatrix(k, 6)) And (k <= .Rows - 1) Then
.Row = k
If .Col = 0 Or .Col = 1 Or .Col = 2 Or .Col = 3 Or .Col = 4 Or .Col = 5 Or .Col = 7 Then
.Col = 6
End If
End If
Next k
End With
End Sub

‘escribir en la celda (columna = 6)
Private Sub MSFlexGrid1_keypress(keyascii As Integer)
If keyascii >= 32 And keyascii <= 127 And MSFlexGrid1.Col = 6 Then
MSFlexGrid1.Text = MSFlexGrid1.Text & Chr(keyascii)
End If
Select Case keyascii
Case vbKeyReturn, vbKeyTab
'mueve para la proxima celda.
With MSFlexGrid1
‘despliega la columna = 6, que se encontraba oculta
If ((.Col + 6 < .cols - 1) Or .Col = 5) Then
.ColWidth(6) = 960
.Col = .Col + 1
ElseIf .Col = 6 Then
For Z = 1 To .Rows - 1
.Row = Z
‘acepta numeros(rojo) y el fondo de todo la fila seleccionada(verde)
If IsNumeric(.TextMatrix(.Row, 6)) Then
.CellForeColor = vbRed
For A = 1 To .cols - 1
.Col = A
.CellBackColor = RGB(100, 184, 150)
.Col = 6
Next A
‘al borrar el numero o agregarle una cadena al numero, le quita el color rojo y verde
Y lo pone en negro y blanco
ElseIf Not IsNumeric(.TextMatrix(.Row, 6)) _
And .CellForeColor = vbRed Then
For A = 1 To .cols - 1
.Col = A
.CellForeColor = vbBlack
.CellBackColor = vbWhite
.Col = 6
Next A

‘al ubicarse en la ultima celda se active el boton aceptar
ElseIf .Row = .Rows - 1 Then
For v = 1 To .Rows - 1
If IsNumeric(.TextMatrix(v, 6)) Then
.Row = v
cmd_aceptar.Enabled = True
End If
Next v
End If
Next Z
End If
End With
End Select
End Sub

'Permite borrar
Private Sub MSFlexGrid1_KeyUp(KeyCode As Integer, Shift As Integer)
'manipular las teclas Supr (Del) y Retroceso (BackSpace)
If MSFlexGrid1.Col = 6 Then
Select Case KeyCode
Case vbKeyDelete
MSFlexGrid1.Text = ""
Case vbKeyBack
If Len(MSFlexGrid1.Text) > 0 Then
MSFlexGrid1.Text = Left(MSFlexGrid1.Text, Len(MSFlexGrid1.Text) - 1)
End If
End Select
End If
End Sub
'claro esta que despues tienes que actualizar la base de datos,
'en función de lo que haya modificado el usuario.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder