en un UserForm tengo un TextBox con el nombre "CODIGO" al cual le asigno la
siguiente rutina:
Private Sub Codigo_AfterUpdate()
Rango = ThisWorkbook.Worksheets("Clientes").Range("Consecutivo")
Numero = ThisWorkbook.Application.WorksheetFunction.Max(Rango)
NumNuevo = Numero + 1
If AltaClientes.Codigo.Value = NumNuevo Then
Exit Sub
ElseIf AltaClientes.Codigo.Value <> NumNuevo Then
MsgBox "El numero de codigo que usted asigno es incorrecto" &
Chr(13) & _
"Por favor NO cambie el numero sugerido por el sistema" & Chr(13) & _
"El numero de codigo consecutivo correcto es el: " & NumNuevo &
Chr(13) & _
"El mismo que sera asignado a este movimiento de alta de cliente.",
vbOKOnly + vbCritical, "TICSA - Aviso Importante"
AltaClientes.Codigo.Value = ClearContents
AltaClientes.Codigo.Value = NumNuevo
End If
End Sub
lo que pasa es lo siguiente:
1.- al ejecutar el UserForm, del rango llamado "CONSECUTIVO" toma el numero
mas grande y le agrega 1 para el codigo del nuevo cliente
2.- el TextBox no tiene el enfoque ni orden de tabulacion
3.- en caso de que el usuario quiera cambiar el numero consecutivo la rutina
se lo impide asignado el numero correcto
4.- lo malo es que al hacer pruebas de funcionamiento el mensaje de error
sale aunque capture el dato correcto (99)
mi rango de codigos es del 1 al 98
el nuevo numero es el 99
¿que estoy haciendo mal?
Leer las respuestas