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

#16 Ivan
21/09/2006 - 18:33 | Informe spam
Hola Victor Manuel,

FE de erratas: donde dije: "lo que me llama la atencion de
ClearContents es su uso en tu codigo." quise decir: "lo que me llama la
atencion de ClearContents es su sintaxis ( o forma de utilizacion) en
tu codigo."

entiendo 'razonablemente' bien todo lo que has ido exponiendo, y
conozco, tambien 'razonablemente bien', el uso de ClearContents con el
objeto Range, lo que se me ''escapa'' es la sintaxis que utilizas en
el codigo expuesto, de lo que deduje que existe una "forma de uso" que
desconozco. De ahi la consulta: aprender algo nuevo.

Pero no te preocupes, como creo que ya te has dado cuenta, mi nivel es
muy limitado, tanto con VBA como intelectivamente hablando.

un saludo
Ivan
Respuesta Responder a este mensaje
#17 Ivan
21/09/2006 - 19:35 | Informe spam
Hola VM,

por si no se entiende mi duda:

Sin probarlos, todos esto procedimientos creo que funcionan, y entran
dentro de la nocion del uso que yo tengo de clearcontents:

.-Borrar la celda a1 ->

Sub Borrar()
ClearContents = Range("a1").ClearContents
End Sub
Sub BorrarContenido2()
Borrar
End Sub

.-Borrar un rango ->

Sub ClearContents(ByVal rng As String)
Range(rng).ClearContents
End Sub
Sub BorrarContenido3()
ClearContents ("a1")
End Sub

.-Borrar un textbox ->

Sub ClearContents(ByVal txt As Single)
Me.Controls(TextBox & txt).Text = ""
End Sub
Sub BorrarContenidos4()
ClearContents (1)
End Sub

Pero esta forma ->

Algo.Algo = ClearContents

-> no la conozco y ademas no me funciona, y de ahí mi duda. Si todavia
tienes ganas de aclararmela, te lo agradezco

Un saludo
Ivan
Respuesta Responder a este mensaje
#18 vm_tapia
21/09/2006 - 20:56 | Informe spam
Pero esta forma ->

Algo.Algo = ClearContents

-> no la conozco y ademas no me funciona, y de ahí mi duda. Si todavia
tienes ganas de aclararmela, te lo agradezco



La forma en que yo la utilizo es dentro de los formularios, has de saber que
dichos formularios contienen objetos, en este caso el TextBox, ComboBox, etc.
los cuales contienen valores, como el caso del TextBox el valor se almacena
en la propiedad Value, entonces si yo tengo un valor, cantidad, etc. dentro
de un TextBox, para borrarlo, necesito hacer referencia hacia ese formulario
y en particular hacia el TexBox y asi podre borrar el contenido de la
propiedad Value del TextBox. Ejemplo:

(trata de hacerlo)

en un Formulario (UserForm1) tengo un TextBox (TextBox1) y un boton de
comando (CommandButton1) si capturo 100 en la propiedad Value del TexBox o
directamente en el TexBox (al momento de ejecutar el formulario con F5) y en
el codigo del boton escribo lo siguiente:

Private Sub CommandButton_Click ()
UserForm1.TextBox1.Value = ClearContents
End Sub

lo que hace el boton el codigo al momento de darle click es borrar cualquier
contenido que introduzcas dentro del TextBox1

NOTA: para crear un formulario necesitas ingresar en el editor de VB y
seleccionar el comando Insertar - Formulario y al momento de que te aparezca
el formulario, tambien aparece una barra de comandos "Flotante" con la cual
puedes "Crear" el o los TextBox, CommandButton, Etc. que necesites "insertar"
en el Formulario y asi puedes diseñar las "pantallas" de captura, consulta,
etc.

Espero no confundirte y que la presente respuesta sea de tu ayuda para
mejorar.

Saludos.
Victor Manuel.
Respuesta Responder a este mensaje
#19 vm_tapia
21/09/2006 - 21:02 | Informe spam
Correccion al codigo anterior

Asi lo expuse:

Private Sub CommandButton_Click ()
UserForm1.TextBox1.Value = ClearContents
End Sub



Debe ser asi:
-
Private Sub CommandButton1_Click ()
UserForm1.TextBox1.Value = ClearContents
End Sub
-

Tambien es valido de la siguiente manera:
-
Private Sub CommandButton_Click ()
TextBox1.Value = ClearContents
End Sub
-
(como ya esta el codigo "dentro" del formulario UserForm1, no es necesario
hacer referencia a el.)

Atte. Victor Manuel
Respuesta Responder a este mensaje
#20 vm_tapia
21/09/2006 - 21:05 | Informe spam
"vm_tapia" wrote:

Private Sub CommandButton_Click ()
UserForm1.TextBox1.Value = ClearContents
End Sub



el ejemplo anterior contiene un error, la correccion queda de la siguiente
manera:
-
Private Sub CommandButton1_Click ()
UserForm1.TextBox1.Value = ClearContents
End Sub
-

tambien es valido de la siguiente manera:
-
Private Sub CommandButton1_Click ()
TextBox1.Value = ClearContents
End Sub
-

como el codigo ya esta dentro del formulario UserFomr1, no es necesario
hacer referencia a el.

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