Saltar al contenido

Israel Cassales

Miembro
  • Contador de contenido

    1397
  • Unido

  • Última visita

  • Días con premio

    72
  • País

    México

Todo se publica por Israel Cassales

  1. Bueno con el ejemplo así como lo tienes, te puedo compartir que ese error de referencia circular es el que te ayuda a mantener la fecha y la hora "congeladas" podrías evitarlo usando una columna auxiliar para el vacío pero la fórmula AHORA() te cambiara el resultado cada que la hoja se calcule o cuando le des guardar. Sin VBA de por medio será esperar el aporte de algún maestro o usuario avanzado. Si cambias de opinión pasa el tema para la otra sección. Saludos
  2. Bueno, como dijera el Jack el destripador "vámonos por partes", ese temporal tiene un origen que es SAP. Hay algunos puntos que no están quedando claro y parece que el único medio que dispones es la WEB para que los usuarios tomen de ahí los datos de SAP ¿Qué versión de SAP tienes? Lo anterior también es confuso ¿tienen diferentes segmentos de VLAN o cómo? siempre hay una forma de poder comunicarse entre los equipos. ¿Mínimo están conectados al mismo Internet? Antes de usar herramientas externas a SAP, éste tiene sus propias soluciones ¿Qué datos son los que necesitan los demás usuarios? Entiendo que no quieran gastar licencias por el tema comercial pero si solo es leer podrías usar una API de SAP dependiendo de la versión que tengas, como el Service Layer, también está SAP WEB y otras. Si en tu lugar de trabajo tienen SAP (bajo licencia) debes tener un partner quien puede ofrecerte soluciones. Haciendo de lado la integridad de la información porque una vez exportados de SAP se vuelven editables y pierden confianza, además considerando que estás usando power query ¿por qué no usar el power BI? Este también se puede conectar con SAP. Identifica que software es el responsable de la información, origen y destino, eso debe facilitar el medio. ¡Saludines!
  3. Hi, No voy a responder por el maestro porque ha sido claro, pero puedo agregar: Es en un dilema técnico y ético. No es debatir si se puede, simplemente no se debe. El Captcha está diseñado justo para eso, para que sea un humano quien pase la verificación, si lo hace una máquina entonces no sirve. ¿Qué vas a hacer cuando el Captcha te pida seleccionar imágenes? El que muestras puede parecer sencillo pero es posible que verifique el tiempo y la forma en la que se mueve el cursor para dar clic. En resumen, no es un tema de Excel ni de VBA, de mi parte tampoco podré contribuir en este tema. Una mejor opción sería preguntarle al proveedor si tienen una API disponible para acceso automatizado. Saludos.
  4. En lo que usted sube el archivo en base a lo que menciona esta podría ser una idea: Suponiendo que la ruta esta en B1 Public Sub Listaynombra_Manual() Dim ruta As String ' Obtiene la ruta de la celda B1 ruta = ActiveSheet.Range("B1").Value ' Verifica si la ruta no está vacía If ruta <> "" Then ' Llama a la función List_Fols_Files con la ruta obtenida List_Fols_Files ruta Else MsgBox "La celda B1 está vacía. Por favor, ingresa una ruta válida.", vbExclamation End If End Sub Es importante resaltar que si la ruta es válida pero la carpeta no existe tendrá un error, en ese supuesto caso para evitar que la macro falle, puede agregar una verificación adicional para asegurar que la carpeta existe antes de llamar a la función. Puede hacer eso utilizando la función Dir en VBA, que verifica la existencia del elemento. También algo tan sencillo como escribir en la celdas de manera nvertidas las diagonales // puede causar error. Saludos cordiales a ambos.
  5. Este tema es similar a este otro "Arrastrar" número del indicador de columnas en el BUSCARV Es posible que la función COLUMNA() le sirva.
  6. Espero haberlo entendido Una idea COINCIDIR: Otra COLUMNA:
  7. ¡Ah! Me ha gustado su aporte @Héctor Miguel a mí me costo trabajo ocupar el Displayformat por eso en la idea que presente use dos sentencias, en una tomé como base las condiciones del formato condicional del consultante pero la de usted me parece mejor. Gusto en saludarlo. De verdad que aquí se aprende bastante. ¡Saludos!
  8. Pues eso es lo que hace la combinación de las dos sentencias.
  9. ¡Vaya! Aunque la expectativa no ha cambiado sí que lo hace el escenario. Cosas como formato condicional, que la celdas no están vacías, que no todo lo colorea con condicional sino que aparte usted colorea de manera manual y aleatoria cambian bastante la posible solución. En términos simples BVA no alcanza de manera directa a leer el color del condicional pero aún así, sí se puede hacer algo, ahora el que usted pinte la celdas cambia la lectura del código, así que le recomiendo tener dos. Uno que primero cuente los condicionales y otro que le discrimine los coloreados manuales. Necesita dos códigos: Function ContarCeldasSinCadenas(rng As Range) As Long Dim celda As Range Dim conteo As Long Dim texto As String conteo = 0 For Each celda In rng texto = celda.Value If InStr(texto, "657") = 0 And InStr(texto, "666") = 0 And InStr(texto, "658") = 0 Then conteo = conteo + 1 End If Next celda ContarCeldasSinCadenas = conteo End Function Function ContarPorColor(rango As Range) As Long Dim celda As Range Dim contador As Long contador = 0 For Each celda In rango If celda.Interior.ColorIndex <> -4142 Then contador = contador + 1 End If Next celda ContarPorColor = contador End Function Y después a un resultado le resta el otro. Con eso debe llegar al resultado que busca. Saludines
  10. Como recomendación el ejemplo es mejor si deja un libro de Excel con el resultado a buscar, con la imagen lo que puedo aportarle es un código VBA. Function ContarCeldasSinColorNoVacias(rango As Range) As Long Dim celda As Range Dim conteo As Long conteo = 0 For Each celda In rango If celda.Interior.ColorIndex = xlNone And Not IsEmpty(celda.Value) Then conteo = conteo + 1 End If Next celda ContarCeldasSinColorNoVacias = conteo End Function AYUDAEXCEL.xlsb
  11. Buen día, Así como está explicado se puede suponer que la función CONTARA() debería ser útil y un VBA similar replicaría lo que hace esa función, no tiene mucho sentido. Ahora, si se trata de deducir (que no es lo mejor) tal vez es posible que usted tenga un rango con diferentes celdas en formato de diferente color y por discriminación necesita contar las celdas que se vayan "despintando", en ese caso la función mencionada NO SERVIRÁ. ¿El rango es fijo? ¿El rango cambia a selección del usuario? ¿Cualquier clase tipo de texto? ¿Se refiere a valores y texto? Por qué no muestra un ejemplo con el resultado a obtener, así es posible recibir mejores propuestas o ideas.
  12. @Fernando Reyes Chavarria Es importante seguir la recomendación del Moderador en ampliar los detalles para recibir más posibilidades de ideas. Con lo que describe me parece (o al menos eso entiendo) que busca tener dentro del gráfico dos siluetas donde el relleno se aumente o se disminuya de acuerdo al porcentaje de la operación que viene en su libro, algo como la imagen: Pero con siluetas humanas, creo. De ser así la idea es simple, en su gráfico debe remplazar las formas por las formas humanas transparentes, luego agrupar con las formas que tendrán el relleno auto ajustable que dependerán del resultado de la fórmula. Aunque puedo estar equivocado y queda esperar a que usted de una información más amplia. Saludines
  13. Un año más en este foro aprendiendo de los demás y tratando de aportar lo mejor posible, espero que se encuentren bien cada uno de los que participan en el foro, consultantes, miembros, maestros, moderadores, administradores... ¡bendiciones y buenos deseos! ¡Feliz Navidad 2024 y Año 2025! Saludines
  14. Saludos cordiales ¿Ya intentaste la opción más sencilla? Me refiero a desmarcar la casilla de advertencia, con eso ya te deja escribir libremente.
  15. Bueno, sin libro de ejemplo ni detalles del escenario a mostrar, lo único que en mi caso puedo recomendar a la consulta es que verifique que no hay filtros o si los hay que muestre los datos en blanco. También usar un campo en la tabla de los que se llaman calculados para forzar que siempre haya algo.
  16. Parece que el consultante @RubenDario no ha tenido oportunidad de dejar sus comentarios, esperando que cualquiera de las propuestas recibidas en el tema le haya servido, de mi parte concluyo mi participación. Saludines
  17. Parece que le ha servido, concluyo mi participación en la consulta.
  18. Podrías hacer algo parecido al libro de muestra pero hay que editar un poco los nombres y eso, así que mejor participaré con las fórmulas anteiores. Saludines_2 Fecha - AYUDA EXCEL.xlsx
  19. Hola. En base a lo que entendí podría ser de utilidad lo siguiente, como no sé su versión de Excel pero en 2013 sería algo así. Para agrupar la fecha en un solo resultado: =FECHA(A3, COINCIDIR(B3, {"ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"}, 0), C3) Luego de ese resultado tomar el día: =ELEGIR(DIASEM(C5, 2), "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo") O en una sola: =ELEGIR(DIASEM(FECHA(A3, COINCIDIR(B3, {"ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"}, 0), C3), 2), "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo") Y en 365 podría ser algo así: =LET( año, A3, mes, COINCIDIR(B3, {"ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO", "JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE"}, 0), día, C3, fecha, FECHA(año, mes, día), díaSemana, DIASEM(fecha, 2), ELEGIR(díaSemana, "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo") ) Saludines
  20. Me da gusto, concluyo mi participación en la consulta. Saludines
  21. ¿Del ejemplo marcado en un libro, nada aún? Bueno, no hay problema. Terminaré mi participación en la consulta. Aunque al estar abierta siempre podrá contar con la posibilidad de algún aporte adicional. Saludines.
  22. Otra opción más sencilla siempre y cuando su diseño lo permita, es agregar una columna adicional con la función FECHA() que tome el dato que se introduzca y haga lo que busca, pero ya es otra columna dentro de la tabla. Para la misma celda no tiene tantas opciones. Es lo que puedo aportar en su consulta, saludines
  23. Para algo como lo anterior una idea es una sentencia VBA, aunque debe personalizar para termine de funcionar de acuerdo a sus necesidades. Private Sub Worksheet_Change(ByVal Target As Range) Dim Cell As Range Dim ws As Worksheet Set ws = Worksheets("Hoja1") If Not Intersect(Target, ws.Range("A2:A10")) Is Nothing Or Not Intersect(Target, ws.Range("B2:B10")) Is Nothing Then Application.EnableEvents = False For Each Cell In Target If Not IsEmpty(Cell) And IsNumeric(Cell.Value) Then If Cell.Column = 1 Then ' Columna A Cell.Value = DateSerial(2024, 1, Cell.Value) ElseIf Cell.Column = 2 Then ' Columna B Cell.Value = DateSerial(2024, 2, Cell.Value) End If End If Next Cell Application.EnableEvents = True End If End Sub
×
×
  • 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.