TextBox1.SetFocus - no me funciona

23/01/2009 - 22:55 por GRIEGO59 | Informe spam
Hola!
Tengo un formulario "InventarioII" con un Textbox1 y un Textbox2.
La idea es ir pasando un lector de código de barra por los diferentes
productos en existencia física y que se remarquen en color amarillo los
mismos productos en el listado de inventario que tengo en una hoja de Excel.

El lector de código de barras escribe los códigos de los productos en Textbox1
y luego se resalta en color amarillo la línea correspondiente, pero yo
quiero que una vez que el lector capta el codigo, el cursor se posicione
automáticamente en Textbox1, pero en lugar de eso, el cursor se queda en
Textbox2. estoy usando el código TextBox1.SetFocus pero no me funciona. Yo se
que estoy haciendo algunas cosas mal, pero no sé que es:

En m1 tengo la siguiente fórmula
=SI(L1<>0;BUSCARV($L1;InventarioII!$A:$I;9;0);1)

En la cada celda de la columna I tengo esta fórmula =fila()

Y el código del formulario es el siguiente:

Private Sub TextBox1_AfterUpdate()
Sheets("InventarioII").[L1] = TextBox1.Value
If Evaluate("iserror(m1)") Then MsgBox "El código de la blusa no existe!": _
TextBox1.SetFocus: Exit Sub

ultF1 = Sheets("InventarioII").[m1].Value
Sheets("InventarioII").Select
Range(Cells(ultF1, 1), Cells(ultF1, 9)).Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
TextBox1 = Empty
TextBox1.SetFocus
End Sub

Que estoy haciendo mal? Alquien puede ayudarme?

Darío.
 

Leer las respuestas

#1 Héctor Miguel
24/01/2009 - 04:08 | Informe spam
hola, Darío !

1) "mueve" el codigo del evento '_afterupdate' al evento '_exit' del control textbox1

2) cambia la condicionante del codigo y en vez de tratar de que "mantenga el foco", EVITA que se salga del textbox1
de:
If Evaluate("iserror(m1)") Then MsgBox "El codigo de la blusa no existe!": _
TextBox1.SetFocus: Exit Sub
a:
If [iserror(m1)] Then MsgBox "El codigo de la blusa no existe!": _
Cancel = True: Exit Sub

saludos,
hector.

__ OP __
Tengo un formulario "InventarioII" con un Textbox1 y un Textbox2.
La idea es ir pasando un lector de codigo de barra por los diferentes productos en existencia fisica
y que se remarquen en color amarillo los mismos productos en el listado de inventario que tengo en una hoja de Excel.
El lector de codigo de barras escribe los codigos de los productos en Textbox1 y luego se resalta en color amarillo la linea correspondiente
pero yo quiero que una vez que el lector capta el codigo, el cursor se posicione automaticamente en Textbox1
pero en lugar de eso, el cursor se queda en Textbox2. estoy usando el codigo TextBox1.SetFocus pero no me funciona.
Yo se que estoy haciendo algunas cosas mal, pero no se que es:

En m1 tengo la siguiente formula =SI(L1<>0;BUSCARV($L1;InventarioII!$A:$I;9;0);1)
En la cada celda de la columna I tengo esta formula =fila()
Y el codigo del formulario es el siguiente:

Private Sub TextBox1_AfterUpdate()
Sheets("InventarioII").[L1] = TextBox1.Value
If Evaluate("iserror(m1)") Then MsgBox "El codigo de la blusa no existe!": _
TextBox1.SetFocus: Exit Sub
ultF1 = Sheets("InventarioII").[m1].Value
Sheets("InventarioII").Select
Range(Cells(ultF1, 1), Cells(ultF1, 9)).Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
TextBox1 = Empty
TextBox1.SetFocus
End Sub

Que estoy haciendo mal? Alquien puede ayudarme?

Preguntas similares