Saltar al contenido

Israel Cassales

Miembro
  • Unido

  • Última visita

Todo se publica por Israel Cassales

  1. Espero haberlo entendido Una idea COINCIDIR: Otra COLUMNA:
  2. ¡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!
  3. Pues eso es lo que hace la combinación de las dos sentencias.
  4. ¡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
  5. 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
  6. 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.
  7. @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
  8. post in a topic contestó a Israel Cassales en pinoji Cafeteria Ayuda Excel
    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
  9. 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.
  10. 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.
  11. 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
  12. Parece que le ha servido, concluyo mi participación en la consulta.
  13. 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
  14. 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
  15. Me da gusto, concluyo mi participación en la consulta. Saludines
  16. ¿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.
  17. 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
  18. 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
  19. 42 visitas y 2 descargas, no sé los demás aunque creo entender lo que buscas marcar en color me genera dudas todo eso de los MIX, etc. En mi caso estoy en viaje largo y traigo mi portátil con Excel 2013, si hay la coincidencia de que mande el libro durante ese tiempo con el coloreado de manera manual por usted, es posible que intente aportar algo. En caso contrario le recomiendo aun así dejar el libro, en el foro hay Maestros y usuarios avanzados que tal vez con ese ejemplo le aporten algo que le sea de utilidad. Saludos cordiales
  20. Saludos totales. Maestro @JasallBcn gusto en saludarlo y coincidir con usted en una consulta. En base a lo explicado me permito aportar unas de ideas diferentes. Como el desafío es el diseño por que el rango no está en el mismo lugar entonces hay que buscarlo. Vengo con la portátil y tengo Excel 2013 así que podría ser alguna de las siguientes: =SUMAR.SI(INDIRECTO(DIRECCION(2,COINCIDIR(C30,A2:V2)-2)&":"&DIRECCION(10,COINCIDIR(C30,A2:V2)-2)),B30,INDIRECTO(DIRECCION(2,COINCIDIR(C30,A2:V2))&":"&DIRECCION(10,COINCIDIR(C30,A2:V2)))) =SUMAR.SI(INDICE(A$2:V$10,,COINCIDIR(C$31,A$2:V$2,0)-2),B31,INDICE(A$2:V$10,,COINCIDIR(C$31,A$2:V$2,0))) No estoy muy seguro pero sería algo así en 365: =LET( col_index, COINCIDIR(C$31, A$2:V$2, 0), range1, INDICE(A$2:V$10,, col_index - 2), range2, INDICE(A$2:V$10,, col_index), SUMAR.SI(range1, B$31, range2) ) @RubenDario Ya tenías el aporte del Maestro, solo es por proponer algo distinto.
  21. Lamento leer eso, eran el par de cosas que conozco, al menos la consulta sigue abierta y es posible que recibas ayuda adicional de algún Maestro o miembro avanzado del foro. Si se me ocurre algo adicional te lo comparto.
  22. Vaya, entonces podrías intentar otra alternativa para convertirlos en sólo lectura, es probable que haya otras pero una opción diferente que conozco sería usar la propiedad ExecMenuItem para "flatear" el documento y asegurarse de que no sea editable: ' (convertir en solo lectura) objAcrobatAVDoc.BringToFront objAcrobatApp.MenuItemExecute "SaveAs"