SetFocus rebelde

07/09/2006 - 03:44 por Ivan | Informe spam
Hola de nuevo a todos

Me ha surgido un 'extraño' problema con el SetFocus de un/unos
combobox de un formulario, al que no consigo hallar explicación.

Se trata de ocho combos 'asociados', por decirlo de alguna manera, por
parejas.

A ver si se explicarme:

los combos se cargan con el contenido de determinadas columnas de una
hoja de excel, que estan asociadas asi:

combo5 = columnaA=>Clave1-> combo1 = columnaB=>lo referenciado por
la clave1
combo6 = columnaC=>Clave2-> combo2 = columnaD=>lo referenciado por
la clave2
combo7 = columnaE=>Clave3-> combo3 = columnaF=>lo referenciado por
la clave3
combo8 = columnaG=>Clave4-> combo4 = columnaH=>lo referenciado por
la clave4

la cuestion es que cuando se introduce una entrada nueva(no
coincidente) en los combos 5, 6, 7 u 8, quiero que me mande el foco al
combo de la clave correspondiente para que introduzca la nueva clave,
pero no se que estoy haciendo mal que no lo consigo.

por ej. en los codigos que expongo a continuación, intento mandar el
foco del combo4 al combo8, pero se va al combo6. Por mas que he
revisado todos los codigos no encuentro la causa. Estos son los
codigos:

dim YaEsta as boolean

Private Sub cmbBalda_AfterUpdate()
If YaEsta = False Then
cmbClave4.SetFocus
MsgBox ("Tienes que introducir una nueva clave")
Exit Sub
End If
End Sub

Private Sub cmbBalda_Change()
With cmbBalda
YaEsta = .MatchFound
If YaEsta = True Then
cmbClave4.ListIndex = .ListIndex
Else
cmbClave4.ListIndex = -1
End If
End With
End Sub

cmbBalda seria el combo4 y cmbClave4 seria el combo8. Tambien he
probado en el evnto exit, pero hacia lo mismo pero con doble msgbox.

quizas este(el problema) en otras partes del codigo, pero por mas que
le doy vueltas no veo nada.

Si podeis ayudarme os lo agradezco.

un saludo y hasta pronto
ivan

Preguntas similare

Leer las respuestas

#6 Ivan
08/09/2006 - 22:56 | Informe spam
Hola Hector Miguel, me has vuelto a aclarar una de esas dudas que no
sabes muy bien donde buscar la respuesta.

Como no podia ser menos, volvia a estar equivocado (bueno, quizas solo
a medias: era verdadero que era falso).

Llevo un tiempo abusando un poco de las booleanas, y creo intuir que,
aunque parecen sencillas, conllevan bastante riesgo.

Si no te parece un abuso, te hago otra consulta al respecto:

cuando el valor de una variable boolean es true y se le vuelve a
asignar el valor true ¿sigue siendo true o puede pasar a false?¿y con
false?.

La verdad es que el uso (o posiblemente el mal uso) de verdadero/falso
me ha acarreado mas de un quebradero de cabeza, y de alguna manera lo
achaco a que, como creo que true puede ser igual a -1, puede pasar
algo parecido a menosXmenos=mas o (1)(-1)=0,

con lo que asignando true a una variable que ya lo es, te puedes
encontrar con que la conviertes en false sin enterarte.

¿estoy volviendo a decir una burrada, o hay algo de esto en el asunto?

Bueno, en cualquier caso muchas gracias, y, aunque me repita, decir que
dudas como las que me has aclarado, suelen ser de las que no sabes
donde buscar una respuesta (salvando foros como este)

Un saludo y hasta pronto
Ivan

PD: voy a ver si consigo ejecutar la secuencia de eventos de control.
Gracias de nuevo.
Respuesta Responder a este mensaje
#7 Héctor Miguel
09/09/2006 - 07:01 | Informe spam
hola, Ivan !

... volvia a estar equivocado (bueno, quizas solo a medias: era verdadero que era falso).
Llevo un tiempo abusando un poco de las booleanas, y creo intuir que, aunque parecen sencillas, conllevan bastante riesgo.
cuando el valor de una variable boolean es true y se le vuelve a asignar el valor true sigue siendo true o puede pasar a false?
y con false?.
La verdad es que el uso (o posiblemente el mal uso) de verdadero/falso me ha acarreado mas de un quebradero de cabeza
y de alguna manera lo achaco a que, como creo que true puede ser igual a -1
puede pasar algo parecido a menosXmenos=mas o (1)(-1)=0
con lo que asignando true a una variable que ya lo es, te puedes encontrar con que la conviertes en false sin enterarte.
... hay algo de esto en el asunto?



que te puedo decir ?... 'reforzar' un true como -verdaderamente- true... lo sigue dejando en 'true' [a menos que lo cambies a false] :))
lo de menosXmas = masXmenos [o como quieras 'jugar al enga#o']... efectivamente pudiera llegar a presentar 'anormalidades' [p.e.]
-1 es evaluado por vba como true [valor de la comparacion por omision]
<> -1 es evaluado por vba como... 'segun las condiciones' :)) [me explico]...

cuando tengas 'dudas', la ventana de inmediato puede 'sacarte de apuros'... prueba con las siguientes expresiones:

? -1 = true <- devuelve verdadero
? selection.count = true <- devuelve falso -???-
? selection.count <> false <- devuelve verdadero -???- [es como decir... 'bueno... en que quedamos ???'] :D

en fin... ;)

saludos,
hector.
Respuesta Responder a este mensaje
#8 Ivan
09/09/2006 - 12:48 | Informe spam
Hola Hector Miguel, muchas gracias por todo.

Voy a ver si consigo domar mi imaginacion, que me hace elucubrar cosas
como esta.

Un saludo y hasta pronto
Ivan
Respuesta Responder a este mensaje
#9 Gabriel Raigosa
30/09/2006 - 18:37 | Informe spam
Carpeta
Descripción
Dirección

1
** Microsoft Excel *
http://esnips.com/web/GabrielRaigosa

2
Archivos para usar en clase
http://esnips.com/web/RaigosaClase

3
Fechas y Horas
http://esnips.com/web/RaigosaFechasHoras

4
Formato y Formato Condicional
http://esnips.com/web/RaigosaFormatos

5
Foro Excel
http://esnips.com/web/ForoExcel

6
Funciones de Busqueda
http://esnips.com/web/RaigosaBusqueda

7
Funciones de Texto
http://esnips.com/web/RaigosaTexto

8
Funciones Financieras
http://esnips.com/web/RaigosaFinancieras

9
Funciones Logicas
http://esnips.com/web/RaigosaLogicas

10
Graficos con Excel
http://esnips.com/web/RaigosaGraficos

11
Grupo (Sabados)
Privado

12
Grupo (Viernes)
Privado

13
Grupo Excel Septiembre
Privado

14
Juegos con Excel
http://esnips.com/web/RaigosaJuegosExcel

15
Macros con Excel
http://esnips.com/web/Macros-con-Excel

16
Manuales Excel
http://esnips.com/web/RaigosaManuales

17
Paginas WEB
http://esnips.com/web/RaigosaPaginasExcel

18
Practicas - XLS
http://esnips.com/web/RaigosaPracticasXLS

19
Tablas Dinámicas
http://esnips.com/web/RaigosaTablasDinamicas

20
TEST
http://esnips.com/web/GabrielRaigosa-test

21
Validación
http://esnips.com/web/RaigosaValidacion

22
Varios
http://esnips.com/web/RaigosaVarios

23
VBA - Visual Basic para Aplicaciones
http://esnips.com/web/RaigosaVBA



Gabriel Raigosa
http://esnips.com/web/Raigosa
http://esnips.com/web/ForoExcel
"Ivan" escribió en el mensaje
news:
Hola de nuevo a todos

Me ha surgido un 'extraño' problema con el SetFocus de un/unos
combobox de un formulario, al que no consigo hallar explicación.

Se trata de ocho combos 'asociados', por decirlo de alguna manera, por
parejas.

A ver si se explicarme:

los combos se cargan con el contenido de determinadas columnas de una
hoja de excel, que estan asociadas asi:

combo5 = columnaA=>Clave1-> combo1 = columnaB=>lo referenciado por
la clave1
combo6 = columnaC=>Clave2-> combo2 = columnaD=>lo referenciado por
la clave2
combo7 = columnaE=>Clave3-> combo3 = columnaF=>lo referenciado por
la clave3
combo8 = columnaG=>Clave4-> combo4 = columnaH=>lo referenciado por
la clave4

la cuestion es que cuando se introduce una entrada nueva(no
coincidente) en los combos 5, 6, 7 u 8, quiero que me mande el foco al
combo de la clave correspondiente para que introduzca la nueva clave,
pero no se que estoy haciendo mal que no lo consigo.

por ej. en los codigos que expongo a continuación, intento mandar el
foco del combo4 al combo8, pero se va al combo6. Por mas que he
revisado todos los codigos no encuentro la causa. Estos son los
codigos:

dim YaEsta as boolean

Private Sub cmbBalda_AfterUpdate()
If YaEsta = False Then
cmbClave4.SetFocus
MsgBox ("Tienes que introducir una nueva clave")
Exit Sub
End If
End Sub

Private Sub cmbBalda_Change()
With cmbBalda
YaEsta = .MatchFound
If YaEsta = True Then
cmbClave4.ListIndex = .ListIndex
Else
cmbClave4.ListIndex = -1
End If
End With
End Sub

cmbBalda seria el combo4 y cmbClave4 seria el combo8. Tambien he
probado en el evnto exit, pero hacia lo mismo pero con doble msgbox.

quizas este(el problema) en otras partes del codigo, pero por mas que
le doy vueltas no veo nada.

Si podeis ayudarme os lo agradezco.

un saludo y hasta pronto
ivan
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida