Saltar al contenido

VBA EXCEL IE INTERNET EVENTO CLICK NO FUNCIONA


Recommended Posts

publicado

Hola Chicos, tengo un detalle con una automatización...

El evento .click no me funciona y no sé porque, e buscado en internet y no encuentro la solución...

Perdon por no poder compartirles el usuario y contraseña para que hagan pruebas, sin embargo, si tienen ideas o links para que pueda leer al respecto, les agradecería...

La página se llama SAP es un aplicativo en línea para el control de la contabilidad, entre otras cosas...

No funciona:

Private Sub CommandButton1_Click()
    Cargando
    objIE.document.getElementById("__button0").Focus
    objIE.document.getElementById("__button0").Click
    objIE.document.getElementById("__button0").Click
End Sub

HTML SAP:

<div tabindex="0" style="cursor: pointer" id="__button0" data-sap-ui="__button0" class="sapBUiBelNavIcon sapBUiIcon-shellMenu sapUiIconMirrorInRTL" title="Mostrar/ocultar navegación del centro de trabajo" role="button" aria-label="Mostrar/ocultar navegación del centro de trabajo" aria-pressed="false"></div>

publicado

image.thumb.png.62bb3f9a4cb94113a744a3bb2387902b.png

La aplicación Wild Fire es para automatizar, pero no me gusta porque está limitada a las funciones d el apropia aplicación y no puedo ser creativo y hacer cosas diferentes, por ello quiero programarlos desde VBA...

Si te fijas, el evento que ejecuta esta app es Click.. y lo ejecuto y no funciona tampoco, sin embargo, en las opciones de la aplicación que señalé "Use Direct Automatio", si agrego esa opción, ahora si funciona... intestigué un poco sobre Use Direct..., pero no encontré algo que pudiese ayudarme... Lo que me da a entender que si se puede, pero estoy haciendo algo mal...

Y además, si te das cuenta, usa la misma referencia que estoy usando del ID=__Button0...

 

 

 

publicado
<div style="display: flex; flex-direction: column; width: 100%; overflow: hidden; flex-grow: 0; flex-shrink: 0;"><div class="sapBUiBelTitle" style="display: flex; flex-direction: row; width: 100%; align-items: center; justify-content: space-between;" role="banner" id="__title0" data-sap-ui="__title0" data-sap-ui-fastnavgroup="true" data-sap-ui-popup="__title0"><div class="sapBUiNoPrint" style="display: flex; align-items: center; flex-shrink: 0; flex-grow: 0;"><div tabindex="0" style="cursor: pointer" id="__button0" data-sap-ui="__button0" class="sapBUiBelNavIcon sapBUiIcon-shellMenu sapUiIconMirrorInRTL" title="Mostrar/ocultar navegación del centro de trabajo" role="button" aria-label="Mostrar/ocultar navegación del centro de trabajo" aria-pressed="false"></div><img class="sapBUiBelCompanyLogo" id="flexCompanyLogo" IMAGEN"></div><div class="sapBUiNoPrint" style="flex-grow: 1; flex-shrink: 1; overflow: hidden; display: flex; align-items: center; justify-content: center;"><div id="__text0" data-sap-ui="__text0" class="sapBUiBelProductTitle">Factura: 9486</div><span id="__icon0" data-sap-ui="__icon0" role="button" title="Cerrar (Ctrl+Q)" tabindex="0" data-sap-ui-icon-content="" class="sapBUiBelTitleClose sapUiIcon sapUiIconMirrorInRTL sapUiIconPointer" style="font-family:'SAP-icons'"></span></div><div class="sapBUiBelPrintTitle">SAP Business ByDesign</div><div class="sapBUiNoPrint" style="display: flex; align-items: center; flex-shrink: 0; flex-grow: 0;"><div tabindex="0" style="cursor: pointer" id="__button8" data-sap-ui="__button8" class="sapBUiBelTitleIconL sapBUiIcon-search" title="Búsqueda" role="button" aria-label="Búsqueda"></div><div tabindex="0" style="display: flex; flex-direction:column; align-items: center;" id="__button7" data-sap-ui="__button7" class="sapBUiBelTitleIconL sapBUiRoundButton" role="Button" aria-haspopup="true" title="REYNA NANCY NAVA LUJAN"><div class="sapBUiRoundButtonIcon" style="display: flex; align-items: center; justify-content: center;"><div style="display: flex; align-items: center; justify-content: center; overflow: hidden;" class="sapBUiRoundButtonIconImg"><img style=" max-width: 100%; max-height: 100%;" src="resources/sap/b/themes/sap_belize/img/user_placeholder.jpg"></div></div></div><div tabindex="0" style="cursor: pointer" id="__button1" data-sap-ui="__button1" class="sapBUiBelTitleIconL sapBUiIcon-help" title="Mostrar/ocultar panel lateral" role="button" aria-label="Mostrar/ocultar panel lateral"></div></div></div></div>

No me permite adjuntar la imagen, por que dice que se pasa del tamaño... pero es una imagen pequeña... ¿??

 

publicado

Hola

Ya viendo todo el código, hay algo que resalta y es el atributo "aria-pressed" del botón el cual está en False, por eso no ocurre nada cuando mandas el clic, dicha propiedad debe cambiarse previamente, es casi fijo que hay algún otro objeto en dicha web que lo hace y/o algún código, probablemente JavaScript, que realiza eso. Por eso tu programa WildFire puede lograrlo después del cambio que mencionas. ¿Podría hacerse a través de VBA? Probablemente sí, pero al no tener acceso a dicha web/aplicación solo tú puedes saberlo y/o buscar cómo, y no, no sería fácil explicarte qué buscar.

Igual, y solo por si acaso, intenta modificar dicho atributo así:

objIE.document.getElementById("__button0").SetAttribute "aria-pressed", "True"

Pero no garantizo que funcione ya que... no tengo acceso para probar.

Saludos.

publicado
En 6/12/2019 at 17:06 , avalencia dijo:

Hola

Ya viendo todo el código, hay algo que resalta y es el atributo "aria-pressed" del botón el cual está en False, por eso no ocurre nada cuando mandas el clic, dicha propiedad debe cambiarse previamente, es casi fijo que hay algún otro objeto en dicha web que lo hace y/o algún código, probablemente JavaScript, que realiza eso. Por eso tu programa WildFire puede lograrlo después del cambio que mencionas. ¿Podría hacerse a través de VBA? Probablemente sí, pero al no tener acceso a dicha web/aplicación solo tú puedes saberlo y/o buscar cómo, y no, no sería fácil explicarte qué buscar.

Igual, y solo por si acaso, intenta modificar dicho atributo así:


objIE.document.getElementById("__button0").SetAttribute "aria-pressed", "True"

Pero no garantizo que funcione ya que... no tengo acceso para probar.

Saludos.

Lo intente mi estimado @avalencia, pero no tuve éxito... Realmente no sé cual sea el problema y me frustra que no puedo resolverlo ?

Pero gracias por tu ayuda, si sabes algomás al respecto, te agradecería mucho tu ayuda 

publicado

Estimado, llenar un formulario finalmente no quita tiempo y no es costoso, pero después llenar datos para hacer pruebas, conocer el programa, programar toda la macro, etc., va más allá de la ayuda gratuita que damos en los foros. Puedo entender que no des tu clave y usuario y/o generes alguno para que probemos porque quizás es una aplicación de tu empresa, pero espero que entiendas que no es que yo no quiera ayudarte, es una cuestión de tiempo. Saludos.

PD: Nunca descargo nada que yo no  vaya realmente a usar, aunque en este caso creo que igual no hay descarga que hacer.

publicado
Hace 8 horas, avalencia dijo:

Estimado, llenar un formulario finalmente no quita tiempo y no es costoso, pero después llenar datos para hacer pruebas, conocer el programa, programar toda la macro, etc., va más allá de la ayuda gratuita que damos en los foros. Puedo entender que no des tu clave y usuario y/o generes alguno para que probemos porque quizás es una aplicación de tu empresa, pero espero que entiendas que no es que yo no quiera ayudarte, es una cuestión de tiempo. Saludos.

PD: Nunca descargo nada que yo no  vaya realmente a usar, aunque en este caso creo que igual no hay descarga que hacer.

Tienes toda la razón Valencia, es mi deseperación por encontrar la solución,

 

Saludos

publicado

Por cierto, acabo de oprimirle click derecho al botón y "ver código fuente" y me aparece lo siguiente 


<!DOCTYPE HTML>
<html class="sapBUiShell" dir="ltr">
	<head>
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/>
		<meta name="sap-ui-fesr" content="true"> <!-- this meta-tag instructs UI5 to generate a passport and add it to xhr-requests -->
		
		<link rel="shortcut icon" href="resources/sap/b/themes/favicon.ico">				
        
        <script type="text/javascript">
		window["sap-b-config"] = {
			"data-sap-b-launchpad": "true"
		};		
		</script>
        <!-- Frame buster -->
        <style> html{display : none ; } </style>
        <script>
          if( self == top ) {
            document.documentElement.style.display = 'block' ;
          } else {
            top.location = self.location ;
          }
        </script>
		<script src="resources/sap-ui-cachebuster/sap-ui-core.js?version=2" type="text/javascript"	
				id="sap-ui-bootstrap"
				data-sap-ui-libs="sap.m"
				data-sap-ui-theme="sap_belize"
				data-sap-ui-xx-bindingSyntax="complex" >
		</script>
		<script src="resources/sap/b/extlib/jquery-ui.min.js"></script>

		<script type="text/javascript" id="sap-b-application"
				data-sap-b-gitCommitId="6cdffc2795b1b55101d80d65fb1d1c5efd9c09e7"
				data-sap-b-buildTimestamp="20191129074445"
				data-sap-b-clientVersion="1911.2.0"
			src="resources/sap/b/ApplicationStarter.js">
		</script>
	</head>
	<body class="sapUiSizeCompact sapBUiShellBackground sapBUiBody" role="application">
		<div id="content" class="sapBUiContent"></div>
	</body>
</html>

 

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      189
    • Comentarios
      99
    • Revisiones
      29

  • Crear macros Excel

  • Mensajes

    • Hola Buenas Noches, Me podrán ayudar a resolver un problema con una planilla que tengo, les comento brevemente. Tengo un archivo que cuenta con 2 hojas, la primera se llama "Movimientos" que básicamente muestra los productos con quiebres que se presentan y la hoja "Producción" que como su nombre lo dice son las producciones de cada producto según fecha de creación. Lo que necesito es lo siguiente: Cada vez que agregue una producción en la hoja "producción", debo ingresar el código creado su cantidad y lote respetivamente, además de la fecha en que se realiza la producción, en caso que sea mayor a las 12:00 se considera PM sino AM. Lo complejo es acá en la otra hoja llamada Movimientos: Esta hoja contiene una columna que se llama "Saldo", que básicamente es la diferencia de lo producido vs el quiebre en esa fecha. Una columna llamada "Cumple", que significa que ese pedido lleva si o no el producto con quiebre. Y una columna "Se preparo", que es si el pedido se preparo o no. Lo complicado viene acá es que si la fecha de la producción que ingrese en la hoja "Produccion", se hace después de la fecha de la hoja movimientos no me debe contar esa producción para efecto de la columna Saldos, si la fecha es igual o menor si se considera y ese saldo que queda disponible se puede ocupar para futuros ingresos de pedidos. Otra conducción es que las producciones siempre se deben asignar al pedido más antiguo de ese código salvo que la fecha de entrega ya haya pasado. La columna "Cumple" es básicamente para poder generar un KPI donde me indique cuales producciones se cumplieron con el plazo y cuales No. Espero me puedan ayudar ya que tengo la siguiente formula pero no sirve ya que me toma las unidades totales y no cumple con la restricción del horario. =SUMAR.SI(Produccion!A:A; $A2; Produccion!C:C) - SUMAR.SI.CONJUNTO($E$2:$E2; $A$2:$A2; A2)) Muchas gracias. Ejemplo..xlsx
    • Hola a ambos, Prueba con: =BYROW(G5:G6;LAMBDA(x;UNIRCADENAS(" - ";1;FILTRAR(E5:E10;B5:B10=x)))) Saludos,
    • Si tienes office 365 puedes usar algo como FILTER ó TEXTJOIN y si no tienes, entonces se puede jugar con las formulas, pero no te recomiendo mucho si son muchos datos, de todas maneras te dejo una fórmula y en vba, ya tu decides cual ocupar, vale Saludos BUSCAR.xlsm
    • Buenos días mis estimados Familia ayudaexcel,  Favor quisiera solicitar su gentil soporte con lo siguiente: Necesito una formula que al buscar encuentre el valor inicial de busqueda y dea todo los resultados encontrado en una celda como ejemplo. si este producto tienes 4 cantidades esta al hacer una formula de busqueda me dea el resultado de las 4 en una celda, dejo el adjunto a espera de su gran soporte.   BUSCAR.xlsx
    • Saludos Sr @Israel Cassales espero este bien quise verificar bien su solución y que las modificaciones que hice funcionarán adecuadamente y al respecto debo decir que su aporte es excelente ya que no solo me ayudo a resolver lo que necesitada sino que también me ayudo a solventar dos cosas más por lo cual estoy muy agradecido 
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.