Tengo el siguiente problema, quiero guardar parte de una formula en diferentes variables, por si en un futuro el dato cambiase de columna, no tener que cambiar dicho dato en la sucesivas fórmulas, el problema es que no consigo que funcione, tengo lo siguiente:
Código vb:
Ver original
Sub formulaVba() ' Dim datoMes As Variant Dim columnaRamo As Variant Dim intervencionP1 As Variant ' datoMes = Worksheets("DATOS_TABLA").Range("AH:AH") columnaRamo = Worksheets("DATOS_TABLA").Range("AT:AT") intervencionP1 = Worksheets("DATOS_TABLA").Range("AX:AX") 'intervencionP1 = "DATOS_TABLA!AH:AH" ' Dim filtroMes As String Dim filtroRamoAtencion As String ' filtroRamoAtencion = "=SI(ESBLANCO(filtroRamo);PROMEDIO.SI.CONJUNTO(intervencionP1;DATOS_TABLA!AH:AH;filtroMes);PROMEDIO.SI.CONJUNTO(intervencionP1;DATOS_TABLA!AH:AH;filtroMes;DATOS_TABLA!AT:AT;filtroRamo))" filtroMes = Worksheets("CONSULTAS_TABLA").Range("filtroMes") ' If filtroMes = "" Then MsgBox "Es necesario indicar en el campo Mes el criterio de selección", vbInformation, Application.Name Else Worksheets("CONSULTAS_TABLA").Range("F20").FormulaLocal = filtroRamoAtencion End If ' End Sub
Cuando voy a la celda para comprobar el dato aparece el error #¿NOMBRE? y cuando comprueba la fórmula que se presenta en la celda veo que no está pasando la columna sino el nombre de la variable:
=SI(ESBLANCO(filtroRamo);PROMEDIO.SI.CONJUNTO(intervencionP1;DATOS_TABLA!AH:AH;filtroMes);PROMEDIO.SI.CONJUNTO (intervencionP1;DATOS_TABLA!AH:AH;filtroMes;DATOS_TABLA!AT:AT;fil troRamo))
Si cambio intervencionP1 por la dirección de la columna, es decir, sin usar variable la fórmula funciona.
¿Alguna sugerencia?