Ayuda con SetFocus

14/09/2006 - 23:59 por vm_tapia | Informe spam
Tengo un formulario con 3 Frames, organizados de la siguiente manera:

En el formulario tengo el Frame2 dentro del Frame1 y el Frame3 esta separado
El orden de tabulacion es por default

en el Frame2 tengo varios TextBox y lo que necesito es que al momento de
capturar un - (guion) en cualquier TextBox del Frame2, el enfoque se
establezca
en el primer TextBox del Frame3.

yo tengo el siguiente codigo
=Private Sub C3_AfterUpdate()
If AltaFacturas.C3.Value = "*" Then
AltaFacturas.PU3.Locked = True
ElseIf AltaFacturas.C3.Value = "-" Then
AltaFacturas.C3.Value = ClearContents
AltaFacturas.ObsFact.SetFocus <<<<< aqui es donde da el error
Else
AltaFacturas.PU3.Locked = False
Cantidad3 = CDbl(AltaFacturas.C3.Value)
Cantidad3 = Round(Cantidad3, 2)
AltaFacturas.C3.Value = ClearContents
ThisWorkbook.Worksheets("Factura").Range("a16").Value = Cantidad3
AltaFacturas.C3.Value = Cantidad3
AltaFacturas.I3.Value =
Format(ThisWorkbook.Worksheets("Factura").Range("ac16").Value, "#,##0.00")
Totales
End If
End Sub
=
y al ejecutar el formulario y capturar el guion el el TextBox3 (C3)
me da el siguiente error:

"se ha produciodel el error '-2147467259(80004005)' en tiempo de ejecucion"
"error no especificado"

¿que estoy haciendo mal?

Gracias por su ayuda.

Preguntas similare

Leer las respuestas

#21 Ivan
21/09/2006 - 21:51 | Informe spam
Hola Victor Manuel

lo primero muchas gracias por tu respuesta. En realidad a esto era a lo
que me referia desde el principio, a como lo estabas usando.

El problema es que a mi me sigue pidiendo que declare la variable
"ClearContents" y me da error, supongo que porque ClearContents no es
(creo) ni un metodo ni una propiedad de los TextBox ni de los
formularios, con lo cual su uso con ellos, si a ti te funciona, debe
tener algo que de nuevo a mi se me escapa.

Bueno, si nos esta leyendo alguien que sepa el motivo de por que a ti
te funciona y a mi no, a lo mejor puede echarnos una mano y
aclaranoslo.

De todas formas muchas gracias y disculpa tanto la intromision como la
insistencia.

Un saludo
Ivan
Respuesta Responder a este mensaje
#22 vm_tapia
21/09/2006 - 21:56 | Informe spam
Hector Miguel:

ya hice que me acepte, ademas de numeros, el asterisco y el guion, como
tambien lo necesito en el campo de PU1 (Precio Unitario partida 1) obviamente
omitiria el asterisco y el guion( el guion lo tengo en duda, porque en una
ocasion tuve que facturar con un descuento, entonces lo utilizaria como cifra
negativa), pero, ¿y el punto decimal? ¿como hago para que acepte el punto?
-
Private Sub C1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not Chr(KeyAscii) Like "[0-9,*,-]" Then KeyAscii = 0
End Sub
-

Gracias
Victor Manuel.
Respuesta Responder a este mensaje
#23 Ivan
21/09/2006 - 22:05 | Informe spam
Hola VM

Disculpame por ser tan pesado, pero a falta de que algun experto nos
ayude a resolver la duda, he estado revisando tus codigos iniciales y
por lo que veo (y a lo mejor vuelvo a decir una burrada) en el primero
el error te daba inmediatamente despues de usar ClearContents (aunque
la verdad, si hubiera error te lo hubiera dado ahí) y en el segundo
utilizas On Error Resume Next antes del clearcontents.

Te aseguro que lo siguiente te lo digo solo por que me ha entrado la
duda de si has probado la expresion en otro contexto, y asi confirmar
que sigue habiendo algo que se me escapa:

¿has probado esa expresion independientemente, pej con los pasos que
me indicabas hace un par de post, crear un form con solo un textbox y
un commandbutton y aplicar el codigo, y sin saltarte los errores?

Si es asi, y te ha funcionado, volvemos a lo mismo: hay algo que no
veo.

Un saludo
Ivan
Respuesta Responder a este mensaje
#24 Ivan
21/09/2006 - 22:45 | Informe spam
Hola VM

con esto te aseguro que me retiro

Tienes razon, se puede utilizar, pero en mi caso, y no entiendo porque,
declarandola como variable

Asi NO me funciona

Private Sub CommandButton1_Click()
TextBox1.Value = ClearContents 'curioso: aqui las mayusculas
se ponen solas
End Sub

Asi SI me funciona

Private Sub CommandButton1_Click()
Dim clearcontents
TextBox1.Value = clearcontents
End Sub

'mas curioso todavia: aqui no me pone las mayusculas, pero sin embargo
funciona. No se porque, pero funciona.

Gracias de nuevo y un saludo
Ivan
Respuesta Responder a este mensaje
#25 vm_tapia
22/09/2006 - 01:06 | Informe spam
Ivan:

Este es el codigo como lo tengo hasta este momento

Private Sub C1_AfterUpdate()
If AltaFacturas.C1.Value = "*" Then
AltaFacturas.PU1.Locked = True
ElseIf AltaFacturas.C1.Value = "" Or AltaFacturas.C1.Value = "-" Then
Exit Sub
Else
AltaFacturas.PU1.Locked = False
Cantidad1 = CDbl(AltaFacturas.C1.Value)
Cantidad1 = Round(Cantidad1, 2)
AltaFacturas.C1.Value = ClearContents
ThisWorkbook.Worksheets("Factura").Range("a14").Value = Cantidad1
AltaFacturas.C1.Value = Cantidad1
AltaFacturas.I1.Value =
Format(ThisWorkbook.Worksheets("Factura").Range("ac14").Value, "#,##0.00")
Totales
End If
End Sub

Private Sub C1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If AltaFacturas.C1.Value = "-" Then
AltaFacturas.C1.Value = ClearContents
AltaFacturas.ObsFact.SetFocus
End If
End Sub

Private Sub C1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not Chr(KeyAscii) Like "[0-9,*,.,-]" Then KeyAscii = 0
End Sub


todo es para el TextBox (C1), como veras en ningun lado declaro al
ClearContents y funciona, haciendo lo que necesito, que es borrar el
contenido (Value) del TextBox (C1) cuando lo requiero. la verdad, desconozco
porque a ti no te funciona como a mi, a lo mejor se debe a que yo utilizo el
Office 2003 (tu cual utilizas) con Windows XP Profesional.

con relacion a la instruccion "On Error Resume Next" esa ya no me sirve
porque lo que yo queria hacer es lo siguiente: en el TextBox de cantidad (C1)
unicamente me aceptara NUMEROS y no encontraba la manera de que no me diera
el error cuando se capturaban letras y la manera que encontre fuen con el
manejador de errores (On Error) y asi desarrolle el codigo que has visto, el
cual he modificado gracias a la ayuda de Hector Miguel, que me proporciono el
codigo para evitar esta situacion. (en el evento _KeyPress).

para terminar, si a ti te funciona el ClearContents declarandola como
variable, pues, asi usala.

Saludos.
Victor Manuel.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida