Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/07/2014, 05:13
Avatar de Seskin
Seskin
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 29
Antigüedad: 15 años, 9 meses
Puntos: 0
VBA - guardar columna para usar en una formula

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 original
  1. Sub formulaVba()
  2.     '
  3.    Dim datoMes As Variant
  4.     Dim columnaRamo As Variant
  5.     Dim intervencionP1 As Variant
  6.     '
  7.    datoMes = Worksheets("DATOS_TABLA").Range("AH:AH")
  8.     columnaRamo = Worksheets("DATOS_TABLA").Range("AT:AT")
  9.     intervencionP1 = Worksheets("DATOS_TABLA").Range("AX:AX")
  10.     'intervencionP1 = "DATOS_TABLA!AH:AH"
  11.    '
  12.    Dim filtroMes As String
  13.     Dim filtroRamoAtencion As String
  14.     '
  15.    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))"
  16.     filtroMes = Worksheets("CONSULTAS_TABLA").Range("filtroMes")
  17.     '
  18.    If filtroMes = "" Then
  19.     MsgBox "Es necesario indicar en el campo Mes el criterio de selección", vbInformation, Application.Name
  20.     Else
  21.     Worksheets("CONSULTAS_TABLA").Range("F20").FormulaLocal = filtroRamoAtencion
  22.     End If
  23.    
  24.     '
  25. 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?