Demasiados estilos

7 envíos / 0 nuevos
Último envío
dparadap
Imagen de dparadap
Offline
última acción: Hace 1 año 10 meses
Nivel 1 - 200 puntos
alta: 16/07/2010 - 14:55
Puntos: 285
Demasiados estilos

Buenas, tengo una hoja que, no sé cómo, ha llegado a tener más de seiscientos estilos personalizados. En la insufrible ayuda de Excel indica que, para reducirlos, hay que pulsar con el botón derecho del ratón y hacer click en "Eliminar". ¿Hay alguna forma de hacerlo que no sea de uno en uno?

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 5 horas 58 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Demasiados estilos

No te voy a preguntar cómo has llegado a tener tantísimos estilos.

para eliminarlos yo probaría con una macro como esta:

Aquí dejo sólo los estilos predefinidos (BuiltIn)

Sub EliminaEstilosDeCelda()
Dim estilo As Style
    For Each estilo In ActiveWorkbook.Styles
        If Not estilo.BuiltIn Then
            estilo.Delete
        End If
    Next 
End Sub

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

dparadap
Imagen de dparadap
Offline
última acción: Hace 1 año 10 meses
Nivel 1 - 200 puntos
alta: 16/07/2010 - 14:55
Puntos: 285
Re: Demasiados estilos

Lo primero, muchas gracias por tu rapidez. Lo segundo, es que ha funcionado sólo en parte. Se ha borrado el estilo de las celdas que no tenían uno de los predefinidos. Sin embargo, lo que yo quería era, precisamente, dejar sólo los estilos predefinidos en el menú para facilitar su búsqueda. Ahora, cada vez que quiero aplicar un estilo, el menú tarda un par de segundos en abrir y yo más en buscar los predefinidos que vienen abajo del todo. En realidad, sólo estoy usando 3 (Buena, neutral e incorrecto), además de los de énfasis para indicar el mes en el que he modificado un determinado valor.

Un saludo.

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 5 horas 58 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Demasiados estilos

yo puse esa condición de no eliminar los predefinidos por poner un ejemplo (y para evitar un error al eliminar el estilo normal, que no se puede eliminar)
pero como es lógico, puedes poner la condición que mejor se ajuste a lo que necesitas.

por ejemplo, puedes comprobar el nombre del estilo y eliminarlo o no según lo que quieras.

Sub EliminaEstilosExceptoNombres()
Dim estilo As Style
    For Each estilo In ActiveWorkbook.Styles
        Select Case estilo.Name
            Case "Normal", "Buena", "Neutral", "Incorrecto"
            ' no hacemos nada
            Case Else
            ' lo eliminamos
                estilo.Delete
        End Select
    Next
 
End Sub

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

dparadap
Imagen de dparadap
Offline
última acción: Hace 1 año 10 meses
Nivel 1 - 200 puntos
alta: 16/07/2010 - 14:55
Puntos: 285
Re: Demasiados estilos

Muchas gracias, eres un fenómeno.

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 5 horas 58 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Demasiados estilos

Si pudiese vivir de esto sería perfecto.

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

visitante (no verificado)
Imagen de visitante
Re: Demasiados estilos

Me surgue una duda:

Y si se quieren realizar cálculos en una celda relacionados con el estilo, ¿se podrían usar también .Styles?

Ej: Fila1 ConEstiloBuena ConEstiloBuena ConEstiloIncorrecta ConEstiloNeutral CeldaCalculada (el contenido de las celdas con estilo no tendría que ser numérico, el reto sería usar los colores para el cálculo.

Donde CeldaCalculada sería por ejemplo para calcular una suma donde buena tiene un valor (ej 1), Incorrecta otro (ej -1) y Neutral otro (ej 0) o cualquier otra fórmula.

Gracias,