Buenas,
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 originalSub 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?