Escribir desde el portapapeles a un desplegable

Estoy intentando elegir de un desplegable la opción que corresponde a un texto que tengo en el portapapeles. Pruebo a hacer un SendKeys "^v" pero no me funciona. Tampoco lo consigo si en el portapapeles tengo la repetición de iniciales que me llevarían a esa opción si las tecleo manualmente. Intentaré explicarme.
Supongamos un desplegable con las siguientes opciones:
Formación Impartida
Formación Recibida
Ampliación
Gestión de Proyectos
Arquitectura Funcional
Otras Actividades
Otros Asuntos
Si yo tengo en el portapapeles (por ejemplo capturado de una celda de una
hoja Excel) el valor "Formación Recibida" y me sitúo en el desplegable e intento escribirlo (con CTRL-V o con el SendKeys "^v") no consigo nada. La otra opción sería escribir dos veces la letra F pero tampoco lo consigo si en el portapeles tengo "FF" y utilizo el mismo mecanismo.
¿Estoy haciendo algo mal? ¿Hay alguna forma de seleccionar en un desplegable
la opción correspondiente a un valor guardado en una variable, una celda, el portapapeles, etc.)

1 Respuesta

Respuesta
1

¿El combobox al cual deseas escribir tiene la propiedad edit activa? Si no la tienes activa solo funciona para búsquedas de lo que tiene cargado.

Hola.

Gracias por responder.

Es un combobox de una página que no he diseñado yo. Estoy intentando rellenar una especie de formulario mediante un "operador virtual". Si escribo directamente, una vez situado el foco de la página en la casilla del combo, funciona como se espera pero si lo simulo con SendKeys (o con CTRL-V habiendo cargado previamente la letra en el portapapeles) no hace la función de selección. Me da la impresión de que al oprimir la tecla CTRL (o simularla) se pierde el foco de la combobox y que ahí podría radicar el problema. También me parece que el comportamiento es distinto si la página está abierta con Internet Explorer o con Mozilla Firefox.

No sé si puedes orientarme algo más.

Saludos,

GGG

Que aplicación es, ¿es una pagina web y lo que intentas es rellenar un formulario de manera automática con otro programa?

Sí, es una página web (de empresa, no accesible en Internet, pero yo creo que el problema es general en cualquier combobox). Intento rellenar los campos desde un Visual basic lanzado desde Access o desde Excel.

Suelo usar este tipo de trucos para recopilar información de forma semiautomática, rellenando los campos de las páginas y copiando y pegando la respuesta en un documento que luego reviso. Hasta ahora no había tenido que seleccionar nada en una combobox y ese es el problema.

Saludos,

GGG

Las paginas web no soportan ese tipo de comportamientos, debido a que la gran mayoría de los combosbox deben ir al servidor al ser seleccionados.

Hola.

No acabo de entender lo que me dices. Por poner un ejemplo concreto, supongamos que entro en la página www.wordreference.com que en su portada tiene un campo de texto y un desplegable (para elegir la modalidad del diccionario). Si yo escribo "window" en el campo de texto, doy dos veces a la tecla de tabulador (con lo que me sitúo en la combobox) y pulso 4 veces la letra E elijo (es un ejemplo, puede salir otro dependiendo del posicionamiento inicial) el diccionario English-Russian, a continuación con la tecla de mayúsculas (shift) pulsada pulso una vez la tecla tabulador (para volver al botón de buscar) y pulso ENTER me sale la página con el significado de "window" en ruso.

Intento repetir lo mismo desde el Visual Basic de un Excel en el que tengo en la casilla A1 la palabra "window", en B1 "EEEE", el cursor de la hoja en A1 y en los módulos de VB el siguiente código:

Option Explicit
Sub Prueba()
Dim cuenta As Integer
cuenta = 1
Do While cuenta > 0
AppActivate ("Microsoft Excel")
SendKeys "^c"
pausa 1
AppActivate ("Windows Internet Explorer")
pausa 1
SendKeys "^v"
pausa 1
AppActivate ("Microsoft Excel")
pausa 1
SendKeys "{DOWN}"
pausa 1
SendKeys "^c"
pausa 1
AppActivate ("Windows Internet Explorer")
pausa 1
SendKeys "{TAB 2}"
pausa 1
SendKeys "^v"
pausa 1
SendKeys "+{TAB}"
pausa 1
SendKeys "{ENTER}"
pausa 3
cuenta = cuenta - 1
pausa 2
Loop
End Sub
Private Function pausa(tiempopausa)
Dim inicio, final
inicio = Timer
Do While Timer < inicio + tiempopausa
DoEvents
Loop
End Function

Sitúo la página en su situación inicial y ejecuto el VB se puede ver que se rellena el campo de texto con la palabra "window" copiada de la casilla A1, se copia la casilla B1, se sitúa en la combobox pero no cambia la selección y luego se hace la búsqueda.

Si para tratar la combobox tiene que ir al servidor tiene que hacerlo tanto en la modalidad manual como en la controlada desde VB.

Saludos,

GGG

Hay diferentes tecnologías y diferentes lenguajes de programación para las paginas web, en algunos te debe funcionar lo que haces y en otros no por la tecnología que se utilizo para la creacion de la web.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas