............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Pregunta: Condicional de Celda a VBA.

Ver el tema anterior Ver el tema siguiente Ir abajo

Pregunta: Condicional de Celda a VBA.

Mensaje por rgracia el Jue Mar 15, 2012 6:54 am

Me gustaría conocer la propiedad de la celda que define si una formula (en este caso de condicional de celda) se cumple o no cumple.

Es decir:

Tengo una formula que dice por ejemplo:

"=SI(Range("A1")=1;VERDADERO;FALSO)"

OK, aquí es sencillo. Coges y dices:

Código:
If Range("A1").Value = True Then
MsgBox "Si, la formula se cumple"
End If

Pero yo lo que busco es la propiedad que dice si el formato condicional de celda cumple o no.

Es decir el que usamos para dar formato a la celda (colorines) etc... quiero saber si cumple o no.

Código:
Range("A1").FormatConditions(1)...

Ese pero quiero saber si cumple o no...

ALTERNATIVA: A malas me gustaría saber como pasar la formula a VBA.

Es decir, coger
Código:
Range("A1").FormatConditions(1).Formula
y pasarlo a VBA, para poderlo manipular en VBA... ¿Como se hace?

Adjunto archivo que es para ver un poco en VBA lo que busco, pero no es el ejemplo sino es más explicación.
Archivos
Pregunta Excel.xls No tienes los permisos para descargar los archivos.(35 KB) Descargado 17 veces

rgracia

Masculino Cantidad de envíos : 4
Edad : 30
Ciudad - Pais : España
Version de Excel : 2003
Fecha de inscripción : 15/03/2012

Volver arriba Ir abajo

Re: Pregunta: Condicional de Celda a VBA.

Mensaje por GalileoGali el Jue Mar 15, 2012 10:52 pm

Te recomiendo jugar con la funcion Application.Evaluate. Mi sugerencia es escueta, porque al leerte intuyo que tienes conceptos y buenas nociones de VBA aun cuando parece un poco confuso tu dilema.

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Pregunta: Condicional de Celda a VBA.

Mensaje por rgracia el Vie Mar 16, 2012 6:04 am

Buenas GalileoGali, muchas gracias por la respuesta.

La verdad no ganaré ningun premio por explicarme bien. xD

No he usado Application.Evaluate y realmente la poco ayudadel VBA de Excel 2003 es poquita. Tiene buena pinta pero de momento no consigo entenderlo. Vamos que no sé como funciona.

Esta pregunta nace porque me encuentro que tengo condicionales de celda. Y estos se activan y portanto colorean ("bueno dan formatos"), pero claro yo quiero saber si ha coloreado o no. Osea si la formula del condicional de celda está en valor True o False. Pero no encuentro la propiedad que me diga esto...

Entonces pensé y digo a malas si cojo la formula debe a ver alguna forma que el VBA me detecte la formula osea que la resuelva y de la propiedad de true o false segun la condición... En fin me enrollo y me pierdo.

Espero haber aclarado algo más.

Gracias


rgracia

Masculino Cantidad de envíos : 4
Edad : 30
Ciudad - Pais : España
Version de Excel : 2003
Fecha de inscripción : 15/03/2012

Volver arriba Ir abajo

Re: Pregunta: Condicional de Celda a VBA.

Mensaje por GalileoGali el Vie Mar 16, 2012 10:28 pm

Lamentablemente por un problema de Lenguajes de Office tuve que recurrir a una celda auxiliar (podría agregarse una Hoja >> usar una celda, >>traducir FormulaLocal por Formula), para convertir la cadena de Formula y poder Evaluar en el lenguaje de VBA y no en el Local que es como devuelve la cadena FormatConditions(1).Formula.

Este bug ya fue planteado hace algunos años por sailepaty en el foro de MrExcel. Si mal no recuerdo Juan Pablo Gonzalez (MVP Microsoft) le contestó que de trataba de un bug.

Este bug no ha merecido (segun creo) demasiado tratameinto ya que en la versión en ingles (la mas frecuente entre los MVP del mundo) el problema no se suscita.
Saile si podes agregar algo.....o rectificarme

Código:
Sub probar()
Range("H1").FormulaLocal = Hoja1.Range("C3").FormatConditions(1).Formula1

'H1 es una celda vacía usada como auxiliar, la celda C3 tiene un Formato Condicional definido con formula que resulta Verdadero si el valor EN c3 es PAR


MsgBox Application.Evaluate(Range("H1").Formula)
End Sub

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Pregunta: Condicional de Celda a VBA.

Mensaje por rgracia el Lun Mar 19, 2012 4:53 am

Hola,

Gracias por la respuesta hasta el momento es la más acertada. Todo y que el tener que usar una celda auxiliar no me gusta nada pues... necesito usarlo por lo menos en 400 celdas y augmenta el tiempo de ejecución bastante y no me interesa.

Hay alguna forma de saber si es cierta o falsa la condición sin usar una celda auxiliar? O como dices es un tema traducción?

Muchas Gracias de nuevo,

rgracia

Masculino Cantidad de envíos : 4
Edad : 30
Ciudad - Pais : España
Version de Excel : 2003
Fecha de inscripción : 15/03/2012

Volver arriba Ir abajo

Re: Pregunta: Condicional de Celda a VBA.

Mensaje por GalileoGali el Lun Mar 19, 2012 7:02 am

Tal vez una obviedad pero tal vez si dieras un ejemplo, y a eso voy von rl planteo que traje a colacion: Cierto formato es disparado cuando la celda objetivo contiene un numero par, es decir para Formato condicional significa saber si se cumple o no la fórmula "=RESIDUO(CELDA,2)=0", ahora yo pregunto: algo impide "a priori" conocer esta fórmula y su ubicación? Cuál es la necesidad de saber si se cumplen las formulas de un Formato Condicional y no, simplemente, verificar si las condiciones estan dads por fuera del FCond????

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Pregunta: Condicional de Celda a VBA.

Mensaje por rgracia el Lun Mar 19, 2012 9:09 am

Lo que busco realmente es conocer si el formato condicional de celda Da formato o No.

Pensaba que había una propiedad Booleana que lo decía dentro de la celda pero no la encontrado.

y FormatConditions(1) tiene el formato tanto se cumple como no cumple.

rgracia

Masculino Cantidad de envíos : 4
Edad : 30
Ciudad - Pais : España
Version de Excel : 2003
Fecha de inscripción : 15/03/2012

Volver arriba Ir abajo

Re: Pregunta: Condicional de Celda a VBA.

Mensaje por Cacho R el Lun Mar 19, 2012 4:22 pm

Imaginemos que tu rango de celdas con formato condicional comienza en A1 (A1:A10, A1:A400, etc).
La siguiente variante:

Código:
Sub OtraVariante()
Dim Mat As Variant, Rng As Range
With [a1].FormatConditions(1)
  Set Rng = [aa1].Range(.AppliesTo.Address)
  Rng.FormulaLocal = .Formula1
  Mat = Rng
  Rng.Delete
End With
End Sub
termina depositando en el vector que he llamado Mat una sucesión de "True / False" asociados a: se cumple la condición / no se cumple la condición.

Para el ejemplo:
La celda A1 se corresponde con Mat(1, 1)
La celda A2 se corresponde con Mat(2, 1)
etc.

En resumen: serán los valores del vector quienes te darán la info que necesitas.
¿Te puede servir la idea?...

Saludos, Cacho R.
avatar
Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Pregunta: Condicional de Celda a VBA.

Mensaje por sailepaty el Mar Mar 20, 2012 1:15 pm

GalileoGali escribió:Este bug no ha merecido (segun creo) demasiado tratameinto ya que en la versión en ingles (la mas frecuente entre los MVP del mundo) el problema no se suscita.
Saile si podes agregar algo.....o rectificarme
Gali nada que rectificar y poco que agregar. El problema no se presenta si la condición esta establecida por comparación de valores, el problema es cuando el forma condicional esta determinado por una formula, ya que estas no son traducidas al Ingles que es el lenguaje bajo el cual trabaja VBA.

Saludos

_________________
I didn't ask to be Mexican I just got lucky!!!
avatar
sailepaty
Moderador
Moderador

Masculino Cantidad de envíos : 135
Edad : 54
Ciudad - Pais : Dallas, TX
Version de Excel : 2007 y 2010
Fecha de inscripción : 04/03/2008

Volver arriba Ir abajo

Re: Pregunta: Condicional de Celda a VBA.

Mensaje por Cacho R el Vie Mar 23, 2012 10:53 pm

¿Y, rgracia?...
¿Te sirvió "algo" de lo sugerido ó fue todo un esfuerzo en vano?...
avatar
Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Pregunta: Condicional de Celda a VBA.

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.