EL PROBLEMA ES SIMPLE DE ENTENDER: quiero que en las celdas seleccionadas y que contienen una fórmula, se reemplacen las referencias (argumentos), por los valores de donde jala.
Es decir, quiero que haga lo que hace la función "EVALUAR FÓRMULA" (de la pestaña FÓRMULAS del grupo AUDITORIA DE FÓRMULAS), pero dentro de la misma celda. No me importa perder las referencias, solo quiero los valores de esas referencias en esa celda.
Ejemplo:
> La celda A1 tiene una fórmula:
Celda A1: "= B2 + C3"
> Las celdas B2 y C3 tienen los siguientes valores:
Celda B2: "=1"
Celda C3: "=2"
>Al ejecutar la macro deseada:
> La celda A1 debe quedar así:
Celda A1: "= 1 + 2"
Ojo:
La celda A1 puede tener otra configuración de fórmulas y referencias.
Ejemplo: Celda A1: "=D4+F4-AA5"
Agradecería que me ayuden, pues he buscado como hacerlo por varios foros, pero no he encontrado una solución para ello. Solo he encontrado para poner el resultado final, pero eso no deseo, quiero los valores de cada referencia en dicha celda.
Tendrías que obtener el valor de la fórmula con:
cells(1,1).formula (esto para A1, pon las coordenadas correctas de cada celda)
Lo segundo es recorrer tu fórmula caracter a caracter, localizando combinaciones de hasta 3 letras y hasta 7 números. Cada vez que encuentres uno de estos, sustitúyelo por el valor de la celda:
letrasynumeros = mid(texto,4,7) (suponiendo que hayamos encontrado una referencia entre los caracteres 4 y 7)
Range(letrasynumeros).value
Si te interesa, es mucho más sencillo sustituir la fórmula por el resultado, así:
cells(1,1).value = cells(1,1).value
Un saludo
Gracias por tu respuesta. Y, siguiendo la lógica que me muestras alguien lo resolvió.
Si no les molesta, aquí les comparto la solución que me dieron:
http://foro.todoexcel.com/viewtopic.php?f=4&t=44040&p=185756#p185756