Saltar al contenido

Toda la actividad

Este flujo se auto actualiza

  1. Hoy
  2. Saludos a todos, Hace tiempo que encontré una solución satisfactoria y quería compartirla por si alguno se encuentra en la misma situación. Básicamente el proceso era una macro de Excel se conectaba a SAP, y generaba un informe en un archivo temporal de Excel, que luego utilizaba para hacer las transformaciones del informe final. Como el archivo principal estaba alojado en SharePoint, necesitaba que se archivo temporal generado por la macro, se guardara también en un lugar especifico de SharePoint. Tener la ruta SharePoint "mapeada" no era una solución (aunque sí "funcionaba") porque el archivo original lo iban a usar muchos usuarios, y cada uno tiene una ruta "mapeada" diferente (la ruta depende de su usuario windows) o simplemente muchos ni tenían la ruta mapeada. Asi que la primera parte de la solución (expuesta en el mensaje anterior), pasó por guardar el archivo temporal en una ruta local que existía en todos los ordenadores independientemente del usuario que lo iniciara (y si no existía, la macro la creaba). Ya daba igual qué ordenador o usuario la ejecutara, puesto que el archivo temporal se guardaba en la ruta "C:\SAP\". Luego PQ apuntaba a esa ruta y el milagro estaba hecho. Eso solo tenia dos problemas menores. Uno que el archivo temporal no se guardaba en SharePoint (condición necesaria para que el proyecto fuera "redondo") Y otra que cada usuario que abriera el informe estaba obligado a ejecutar todo el proceso de captura de datos de SAP, ya que la ultima versión actualizada de los datos se alojaba en el ordenador del ultimo usuario que hubiera hecho una actualización. La solución pasaba por guardar sí o sí el archivo temporal en SharePoint. Y después de mucho buscar encontré el método XMLHttpRequest que entre otras cosas permite a vba realizar peticiones HTTP y HTTPS a servidores Web para intercambia información. ¡Había encontrado la solución!! Ya solo tenia que guardar el archivo en local, cerrarlo, subirlo a SharePoint a través de XMLHttpRequest y reconfigurar la consulta PQ para que apuntara a la dirección SP y no a la local. Proyecto con "circulo cerrado", y cada usuario tiene la opción de capturar los últimos datos extraídos (por quien sea) o de generar datos nuevos de SAP. Os dejo el trozo de codigo Vba que carga el archivo en SP. Probablemente los grandes gurús de vba ya conocían esto, pero yo lo desconocía y me ha abierto un mundo de posibilidades entre SAP y SharePoint. Saludos. 'subo el archivo a sharepoint Dim rutaLocal As String, rutaSharePoint As String Dim xmlHttp As Object Dim fileData As Variant Dim fileStream As Object rutaLocal = "C:\...." rutaSharePoint = "https:...." 'Leo el archivo local Set fileStream = CreateObject("ADODB.Stream") fileStream.Open fileStream.Type = 1 'Binary fileStream.LoadFromFile rutaLocal fileData = fileStream.Read fileStream.Close 'Crear objeto XMLHTTP y subirlo Set xmlHttp = CreateObject("MSXML2.XMLHTTP") xmlHttp.Open "PUT", rutaSharePoint, False xmlHttp.setRequestHeader "Content-Type", "application/octet-stream" xmlHttp.send fileData
  3. hay una alternativa mas 'barata' (usando si'es logicos) asumiendo la entrada de horas en [A7] =(a7>=5)+(a7>=13)+(a7>=21) pros: - no usa funciones (rendimiento optimo) - funciona en cualquier version de excel cons: - le ves alguna contra ?
  4. Yesterday
  5. ¡Hola! Te comparto tres soluciones Excel 365 Buscar en intervalos horas - Excel 365_GP.xlsx
  6. Funciona excelente mil gracias
  7. prueba con el adjunto 3en1 (ayudaExcel).xlsx
  8. Saludos Sr. @Héctor Miguel agradecido por sus comentarios. Un poco de contexto, el resultado, que pretendo obtener en la Celda "E11" dependiendo de las horas introducidas en en la Celda "D11" me permite obtener los descansos obligatorios por Ley para periodos de tiempo determinados de alli que estoy tomando los cuatro casos más comunes, por tal motivo la Celda "D11" solo podrá adquirir valores comprendidos entre las 0 Horas y las 28 Horas mientas que la Celda "E11" exclusivamente podrá reflejar como resultado cuatro valores 0, 1, 2 y 3, ya que siendo un requisito legal no existe la posibilidad de obtener otro resultado si los valores de la Celda "D11" están comprendidos entre 0 Horas y 28 Horas, para acotar más el resultado y no dejar intervalos abiertos modifique la última fórmula: =SI(Y($D8>=21;$D8<29);3;0) Adjunto nuevamente el archivo con las correcciones mencionadas así como con los resultados esperados conforme me solicitó. Libro1_110914.xlsx
  9. en la muestra de tu adjunto se cumplen las 3 condiciones en los datos superiores (PERO...) te falto indicar el resultado (correcto, a mano) que esperas (segun ingreses en [D11]) en el resumen inferior (en la celda [E11]) ? y algun ejemplo donde NO se cumplan las 3 condiciones (en los datos superiores)
  10. Saludos amigos espero estén bien Necesito que me ayuden a anidar tres formulas en las cuales existen intervalos distintos para su funcionamiento: =SI(Y($D6>=5;$D6<13);1;0) =SI(Y($D7>=13;$D7<21);2;0) =SI($D8>=21;3;0) En concreto necesito de acuerdo al archivo adjunto que al introducir una cantidad de horas en la Celda “D11” una única fórmula anidada en la Celda “E11” refleje el resultado correcto conforme al intervalo correspondiente. Mucho les sabre agradecer la ayuda que me puedan dar. Libro1.xlsx
  11. gabrielese ha empezado a seguir a Presentación
  12. un mensaje en un tema añadido gabrielese en Presentaciones
    Soy Gabriel de La Plata - Provincia de Buenos Aires - Argentina, trabajo a diario con Excel, uso VBA, Python, R, y estoy en un curso de Tableau, siempre aprendiendo....gracias por recibirme.
  13. Última semana
  14. Jonathan Z se ha unido a esta comunidad
  15. gabrielese se ha unido a esta comunidad
  16. un mensaje en un tema añadido Sergio en Cafeteria Ayuda Excel
    Israel, no debes registrarte de nuevo ni hacer nada especial. En unos meses habrá noticias sobre ello.
  17. Sumo mis felicitaciones ahora en el tema adecuado porque sólo lo hice dentro de un tema regular, a mí me ha gustado. La sección que me ha generado dudas es la de "planes de suscripción", ¿tengo que volver a registrarme o actualizar algo en mi perfil? ¿Es una sección diferente de preguntas y respuestas sólo visible al registrarse? Y agrego a las felicitaciones a los maestros y a los usuarios avanzados que contribuyen con las respuestas, con la IA avanzando en grande, la interacción humana (al menos en esto de los foros) va siendo desplazada. ¡Gracias Totales!
  18. Al escribir fórmulas debemos evitar siempre que podamos anidar funciones SI (sobre todo cuando tenemos información que se repite). Por favor, prueba la siguiente fórmula: =SI.ERROR( LET( id, B3, fecha_ref, F3, rango_ids, '[Base Snte 05 Coah 2.xlsx]Pagos'!$F$2:$F$10000, rango_fechas, '[Base Snte 05 Coah 2.xlsx]Pagos'!$K$2:$K$10000, rango_resultado, '[Base Snte 05 Coah 2.xlsx]Pagos'!$D$2:$D$10000, diferencia, ABS(rango_fechas - fecha_ref), filtro, (rango_ids = id) * diferencia, min_dif, MIN.SI.CONJUNTO(diferencia, rango_ids, id), fila, COINCIDIR(min_dif, filtro, 0), INDICE(rango_resultado, fila) ), "No encontrado")Coméntanos si funciona.
  19. Excelente jueves a tod@s, Agradezco en verdad todo su apoyo y comentarios les comparto una formula que use para cruzar con dos archivos pero mi maquina no es tan poderosa y se me traba con esta formula: =SI.ERROR( INDICE('[Base Snte 05 Coah 2.xlsx]Pagos'!$D:$D, COINCIDIR( MIN( SI([BaseSnte05Coah2.xlsx]Pagos!$F:$F=B3, ABS([BaseSnte05Coah2.xlsx]Pagos!$K:$K-F3))), SI([BaseSnte05Coah2.xlsx]Pagos!$F:$F=B3, ABS([BaseSnte05Coah2.xlsx]Pagos!$K:$K-F3)), 0)),"No encontrado") Sabrán de alguna alternativa que use tanta ram o recursos del pc, Mil gracias a de nuevo
  20. patososa se ha unido a esta comunidad
  21. Damiruan ha empezado a seguir a Presentación
  22. un mensaje en un tema añadido Damiruan en Presentaciones
    Soy novato pero aprendo rápido... Gracias por admitirme
  23. Damiruan se ha unido a esta comunidad
  24. Sergio ha empezado a seguir a Nuevo diseño del foro
  25. un mensaje en un tema añadido Sergio en Cafeteria Ayuda Excel
    Muchas gracias Abraham! La verdad es que cuesta mucho esfuerzo mantenerlo vivo, pero poco a poco irá mejorando su aspecto.
  26. Hola a todos Quería felicitar públicamente a @Sergio por el nuevo diseño del foro, realmente se ve mucho más moderno. Espero que logremos hacer que el foro vuelva a ser tan grande como antaño.
  27. joselo_rod123 se ha unido a esta comunidad
  28. Buenos dias, muchas gracias, esta muy bien,un saludo y buen dia campeon
  29. Hola @ROVER1965 Te adjunto dos tipos de soluciones, la primera es celda por celda con la funcion SUMAR.SI.CONJUNTO y la segunda es una sola formula de Excel 365. Ya nos comentaras. CONSULTA SOBRE FORMULAS EXCEL.xlsx
  30. Con el tiempo transcurrido, falta de seguimiento o falta tiempo de tiempo del autor, termino mi participación en el tema. Saludines
  31. Antes
  32. Hola ¿quizás está protegida la hoja y/o el libro? ¿por qué no adjuntas el archivo?
  33. Puedo crear, duplicar los existentes, pero no logro eliminar los que ya he personalizado ni modificarlos, me sale el mensaje para eliminar le doy aceptar pero no sucede nada siempre se quedan ahí, alguien sabe como solucionar esto. Como referencia solo me sucede en el archivo actual en el que estoy trabajando no me pasa en los otros archivos.
  34. semofajardo se ha unido a esta comunidad
  35. Eusebita se ha unido a esta comunidad
  36. solu se ha unido a esta comunidad
  37. Hola buenos dias amigos, aqui estoy otra vez haber si podeis ayudarme con mi problema, quiero separar en mi hoja de calculo las ganancias o perdidas según si son positivos o negativos y si estan amortizadas o en proceso, pero la formula que uso me da error,¿ podeis echarme una mCONSULTA SOBRE FORMULAS EXCEL.xlsxano?, gracias. en el excel he hecho una simulación de los datos,
  38. (parece que) ya pasaste de nuevo por tu consulta, asi que, en tanto te decides a soltar mas detales... como tus datos fueron insuficientes... analiza la muestra del adjunto (m365) 1) en las columnas A,B y C los datos donde buscar los valores (si estan en otro libro, cambia las referencias en la primera matriz en las columnas E,F y G) 2) en [E1] indicas el importe a buscar y en [E2] el '%' de tolerancia (+/-), los encontrados se derraman en la matriz [E4#] 3) en [I1] puedes elegir el monto filtrado que consideres mas apropiado (lista tomada de [E4#]), [I2] indica si hay mas de uno 4) en la segunda matriz [I5#] se listan los (RE)filtrados (OJO: que pudiera haber todavia mas de uno) 5) si hubiera mas de uno, la celda [M2] es para elegir de cual de ellos se rescatan los datos (mostrado en [M5]) puede ser que sobren pasos, filtros, etc, pero la falta de detalles es terreno fertil para una imaginacion generosa selecciona tolerancia en lista (ayudaExcel).xlsx
  39. Amigos, Se que para ustedes debe ser bastante sencillo, a mi se me esta complicando, resulta que necesito se devuelva texto en una celda, dependiendo de la hora que se ingresa y de acuerdo a 3 rangos este texto cambie. Debe caer en la celda B5 de acuerdo a lo que se ingrese en la celda A5. Y esta cambien de acuerdo al rango A1 - C3 Muchas gracias por su gentil ayuda Horas.xlsx