Que estoy haciendo mal?

05/07/2006 - 20:15 por vm_tapia | Informe spam
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

#1 AnSanVal
05/07/2006 - 23:06 | Informe spam
1º.- creo que; Numero =
ThisWorkbook.Application.WorksheetFunction.Max(Rango), debería ser; Numero =
ThisWorkbook.Application.WorksheetFunction.Max(Range("Rango").
2º.- ThisWorkbook.Application.WorksheetFunction.Max(Range("Rango") devuelve
"99" (texto) y Numero devuelve 99 (número).

Saludos desde Tenerife (España).
******************************
"vm_tapia" escribió en el mensaje
news:
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?

Preguntas similares