Visual Basic - AQUI ESTA EL CODIGO (ERROR5)

Life is soft - evento anual de software empresarial
 
Vista:

AQUI ESTA EL CODIGO (ERROR5)

Publicado por GIUSEPPE (34 intervenciones) el 10/12/2004 20:01:05
Aqui esta el codigo que les digo muchachos chequenlo, la funcion de verificarangodato es la que me checa si el dato cumple con los valores maximo y minimos... y el vaspread1_leabecell es la que me manda llamar esa funcion de verificarangodato. Que es lo que tengo mal, para que el msgbox de "Fuera Rango" al compilarlo me lo muestre dos veces

Private Sub vaSpread1_LeaveCell(ByVal Col As Long, ByVal Row As Long, ByVal NewCol As Long, ByVal NewRow As Long, Cancel As Boolean)

If IsNumeric(Col) Then
If Col = 6 Or Col = 7 Or Col = 8 Then
Call VerificaRangoDato(Col, Row)
End If
End If
If IsNumeric(NewCol) Then
If NewCol > 0 Then
Columna = NewCol
Renglon = NewRow
Proc_calcula_maximosyminimos Columna, Renglon
End If
End If

End Sub

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

SEGUNDA PARTE DEL CODIGO

Publicado por GIUSEPPE (34 intervenciones) el 10/12/2004 20:03:51
Public Sub VerificaRangoDato(ByVal Col As Long, ByVal Row As Long)
On Error GoTo llErr:

vaSpread1.Col = Col
vaSpread1.Row = Row

If Col < 6 Then Exit Sub
'Proc_calcula_maximosyminimos vaSpread1.Row, vaSpread1.Col

If Val(vaSpread1.Row) = gl_nom Then
If (vaSpread1.Text) <> "" Then
If Val(txtRelMin) <> 0 Then
ColAct = vaSpread1.Col
Cumple = True
vaSpread1.Col = 6
Val_FaseA = Val(vaSpread1.Value)
If Len(vaSpread1.Text) > 0 Then
If Val_FaseA > Val(txtRelMax.Text) Or Val_FaseA < Val(txtRelMin.Text) Then
Cumple = False
vaSpread1.ForeColor = &HFF& 'Rojo
Else
vaSpread1.ForeColor = &H0& 'Negro
End If
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

TERCERAPARTE DEL CODIGO

Publicado por GIUSEPPE (34 intervenciones) el 10/12/2004 20:04:48
vaSpread1.Col = 7
val_faseb = Val(vaSpread1.Value)
If Len(vaSpread1.Text) > 0 Then
If val_faseb > Val(txtRelMax.Text) Or val_faseb < Val(txtRelMin.Text) Then
Cumple = False
vaSpread1.ForeColor = &HFF& 'Rojo
Else
vaSpread1.ForeColor = &H0& 'Negro
End If
End If
vaSpread1.Col = 8
Val_FaseC = Val(vaSpread1.Value)
If Len(vaSpread1.Text) > 0 Then
If Val_FaseC > Val(txtRelMax.Text) Or Val_FaseC < Val(txtRelMin.Text) Then
Cumple = False
vaSpread1.ForeColor = &HFF& 'Rojo
Else
vaSpread1.ForeColor = &H0& 'Negro
End If
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

cuarta parte DEL CODIGO

Publicado por giuseppe (34 intervenciones) el 10/12/2004 20:05:59

If Cumple Then
vaSpread1.Col = 9
vaSpread1.Value = True
Else
vaSpread1.Col = 9
vaSpread1.Value = False
MsgBox "Valor Fuera del Rango"
vaSpread1.SetFocus 'Mandamos el Focus al Spread
End If
Else
vaSpread1.ForeColor = &H0& 'Negro
End If
End If

Else
If (vaSpread1.Text) <> "" Then
If Val(Text2.Text) <> 0 Then
Cumple = True
vaSpread1.Col = 6
Val_FaseA = Val(vaSpread1.Text)
If Len(vaSpread1.Text) > 0 Then
If Val_FaseA > Val(Text3.Text) Or Val_FaseA < Val(Text2.Text) Then
Cumple = False
vaSpread1.ForeColor = &HFF& 'Rojo
Else
vaSpread1.ForeColor = &H0& 'Negro
End If
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

quinta parte DEL CODIGO

Publicado por giuseppe (34 intervenciones) el 10/12/2004 20:06:27
vaSpread1.Col = 7
val_faseb = Val(vaSpread1.Text)
If Len(vaSpread1.Text) > 0 Then
If val_faseb > Val(Text3.Text) Or val_faseb < Val(Text2.Text) Then
Cumple = False
vaSpread1.ForeColor = &HFF& 'Rojo
Else
vaSpread1.ForeColor = &H0& 'Negro
End If
End If
vaSpread1.Col = 8
Val_FaseC = Val(vaSpread1.Text)
If Len(vaSpread1.Text) > 0 Then
If Val_FaseC > Val(Text3.Text) Or Val_FaseC < Val(Text2.Text) Then
Cumple = False
vaSpread1.ForeColor = &HFF& 'Rojo
Else
vaSpread1.ForeColor = &H0& 'Negro
End If
End If

If Cumple Then
vaSpread1.Col = 9
vaSpread1.Value = True
Else
vaSpread1.Col = 9
vaSpread1.Value = False
MsgBox "Valor Fuera de Rango"
vaSpread1.SetFocus 'Mandamos el Focus al Spread
End If
Else
vaSpread1.ForeColor = &H0& 'Negro
End If
End If
End If

Exit Sub

llErr:
If Err.Number = 5 Then
Err.Clear
Exit Sub
Else
ShowErrMsg
End If
Exit Sub

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SEGUNDA PARTE DEL CODIGO

Publicado por fernando (79 intervenciones) el 10/12/2004 20:16:03
No leiste mi respuesta tu pregunta??
tu problema es que la etiqueta a la q saltas con el goto está muchas lineas por debajo del goto, entonces da error!!!!!!!!!!!!!!!!!!!!!!!!
ponele una etiqueta intermetida
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

FER LO QUE PASA ES QUE NO MARCA ERROR

Publicado por GIUSEPPE (34 intervenciones) el 10/12/2004 21:02:04
EL SISTEMA YA NO MARCA EL ERROR 5 QUE ES PROCEDIMIENTO INVALIDO ESE ERROR SE LO QUITE DESDE HACE MUCHO EL SISTEMA FUNCIONA CORRECTAMENTE........
SOLO LO QUE DIGO YO, ES QUE YO LE PUSE UN MENSAJE (MSGBOX) OSEA UNA ALERTA SALE UN MENSAJE CUANDO SE EQUIVOCA AL INTRODUCIR UN VALOR YO SE LO PUSE, CUANDO LO PRUEBO DENTRO DE VISUAL APARECE UNA VEZ, PERO CUANDO LO COMPILO APARECE 2 VECES, ES COMO SI ENTRARA DOS VECES A LA FUNCION Y NO SE PORQUE LO HACE YA ME ENTENDISTESSS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:FER LO QUE PASA ES QUE NO MARCA ERROR

Publicado por fernando (79 intervenciones) el 12/12/2004 03:16:38
si lo seguis con F8 entra una sola vez a tu msgbox?
y dede el exe entra dos veces?
entonces probá lo q te digo de poner una etiqueta mas cerca del goto

suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar