Saltar al contenido

Recommended Posts

publicado

Buenos días,
Favor me pueden ayudar con alguna formula en excel  y alguna VBA para contabilizar celdas sin relleno de color pero que contengan cualquier tipo de texto dentro de la celda.  "CELDA SIN RELLENO DE COLOR CONTABILIZAR."

Gracias por su soporte desde ya !

publicado

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.

publicado
hace 20 minutos , Israel Cassales dijo:

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.

Hola Israel gracias por brindarme tu tiempo , tengo una tiendas columnas fijas , en este ejemplo quisiera que la formula me indique cuantas celdas tengo sin relleno de color teniendo en cuenta que hay texto o numero dentro de la celda.

image.png.d72c2a73eb3b2488fa9d8c6fc37f8473.png

publicado

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

publicado
hace 2 minutos , Israel Cassales dijo:

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 12.77 kB · 0 descargas

Hola aquí te adjunto el excel , una formula en cualquier celda para que me cuente toda esas celdas cuantas en blanco hay así tenga texto dentro.

CELDA VACIA.xlsb

publicado
hace 7 minutos , Israel Cassales dijo:

El código no te sirvió?

Israel sabe , me percate que los cuadros celdas tienen formato de condición de color que se sombrean cuando se detecta alguna observación.
y creo que por ello la formula que me enviaste no esta funcionando ya que se colorea por el formato condicional asignado.

 

image.png

publicado

Podrias convertirlo todo en una tabla y filtrar las columnas que te interesen por "filtro de color:sin releno?

image.thumb.png.678bf094e70d22ff526aedb2185ef87a.png

 

publicado

¡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.

recording-2025-01-08-13-17-06.gif

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

publicado
hace 20 minutos , Israel Cassales dijo:

¡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.

recording-2025-01-08-13-17-06.gif

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

Israel / njnsp lo que yo necesito es  tener una formula que me indique estas son las celdas vacías con cualquier tipo de texto, en la primera formula que me enviaste Israel funciona siempre y cuando se pinte manualmente las celdas pero si las celda tiene formato condicional y se colorean la formula lo toma como toda esas celdas vacia.

yo no quiere que considere eso como vacia ya que tiene un color por el formato condicional.

image.thumb.png.1ac659515793752983d64d689c670edf.png

publicado

hola, a todos !

hace 13 horas, Tilin2023 dijo:

los cuadros celdas tienen formato de condición de color que se sombrean cuando se detecta alguna observación

analiza el adjunto, es una copia de tu muestra (sorry, le depure algunos abusos)
(datos ocultos, referencia a celdas 'alla donde se devuelve el aire', celdas combinadas [no sabes en la que te metes], etc.)
ya lo repondras si son imprescindibles ?

al final de cuentas, lo que te interesa es una UDF funcionando en la columna "N"
lo importante son los codigos (en el modulo de 'la hoja' y el modulo general con la/s UDF's)

condicion color (ayudaExcel).xlsb

publicado (editado)

¡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!

Editado el por Israel Cassales
publicado
hace 14 horas, Israel Cassales dijo:

me costo trabajo ocupar el Displayformat por eso... use dos sentencias, en una tomé como base las condiciones del formato condicional

el tema tiene su grado de complejidad por lo siguiente:

1) la propiedad que intentas (.interior.colorindex) no detecta formatos condicionales

2) la propiedad .displayformat (xl-2010+) no se puede usar (directamente) en UDF's llamadas desde celdas

3) por lo mismo es la 'vuelta de tuerca' por procedimiento 'auxiliar' y el metodo 'evaluate'

finalmente, no me hables 'de usted', hablame de (us)TU 🫡

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
  • 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
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    5    1

  • Crear macros Excel

  • Mensajes

    • Hola, El texto citado no lo termine de entender, la celda adyacente a Z27 se relaciona con la fila A28 de la hoja VTL1 y el resultado 35 de su ejemplo, se obtiene de la fila 8, así que para hacer algo sin complicaciones use la columna BM para devolver ese valor. Aprovechando los parámetros de discriminación que uso usted para pintar las celdas de la fila, podría usar esos mismos en una fila auxiliar y así obtener un valor que podría usar como criterio en alguna función, sin tener que meterse al terreno de los colores del condicional, porque no son los mismos que los de la paleta de colores en cuestiones de código. ¿Entonces una solución con macros no es de su interés? Si cambia de opinión podría colocar el tema en esa sección, querer formular con los colores del formato condicional tiene sus características específicas, sin mencionar que se actualice "sola". Aunque bueno, todavía es posible que algún maestro o usuario avanzado le pase una solución con alguna función personalizada al ver que usted tiene 365. Si le interesa una idea sencilla podría usar un rango en la fila 5: =SI.ERROR(COINCIDIR(K7,CALCULOS!$B$4:$B$35,0),SI(O(DIASEM(K7)=7,DIASEM(K7)=1),1,0)) Eso le daría la opción de usar: =SUMAR.SI($K$5:$AY$5,">=1",K8:AY8) Saludines
    • Estimados amigos espero estén bien   Tengo este archivo que me ayuda a llevar las horas trabajadas al que necesito añadir en la Hoja5 (HHE) una fórmula que me cuente las Horas trabajadas en Días de Descanso (fines de semana y feriados), actualmente mediante una Regla de Formato Condicional se resaltan en amarillo el Dia de Semana y la Fecha de los Días de Descanso sin embargo el inconveniente se me presenta con los días feriados que cambian de posición de acuerdo a la fecha y cuando el mes comienza en día domingo por lo cual necesito una fórmula que me permita sumar los Días de Descanso cuando la Fecha que le corresponda este resaltada en Amarillo la sintaxis sería más o menos esta para la primera semana del mes de Enero de 2025: =SI('VTL1'!$I$7=AMARILLO;'VTL1'!$I8;0) + SI('VTL1'!$J$7=AMARILLO;'VTL1'!$J8;0) + SI('VTL1'!$K$7=AMARILLO;'VTL1'!$K8;0) + SI('VTL1'!$L$7=AMARILLO;'VTL1'!$L8;0) + SI('VTL1'!$M$7=AMARILLO;'VTL1'!$M8;0) + SI('VTL1'!$N$7=AMARILLO;'VTL1'!$N8;0) + SI('VTL1'!$O$7=AMARILLO;'VTL1'!$O8;0) Y así sucesivamente para el resto de las semanas, con los datos actuales el resultado esperado para la primera semana (I8:O8) sería 9 horas mientras que para el mes (Fila8) el resultado esperado seria 35 horas estos resultados deben reflejarse en la Celda “$Z7” de la Hoja5 (HHE) de modo tal que una vez haya completado la totalidad de la fórmula para el resto de las semanas del mes la pueda correr de Z27 hasta Z42 VTL - HHE_101128.xlsx
    • Hola, veo que tienes 365, así que esta forma funcionará   Almacen.xlsx
    • Buenos días  @LeandroA espero estes bien Tengo un caso idéntico al planteado en la siguiente pregunta: Sin embargo, a diferencia de quien planteo originalmente la pregunta al correr el código no obtengo ningún resultado podrían ayudarme a resolver este inconveniente y que al hacer click en el Botón Guardar (CommandButton3) del Formulario RCS (frmrcs) el archivo pdf quede configurado con orientación vertical, márgenes superior, inferior, derecho e izquierdo = 1 y en página tamaño carta. Si acaso influye uso Microsoft Excel LTSC MSO (versión 2209 Compilación16.0.1.15629.20200) de 64 bits Mucho le sabre agradecer la ayuda que me pueda dar  RCS PRUEBA - copia.xlsm
×
×
  • 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.