Funciones de hoja de calculo en VBA

Tengo 2 rangos: "Canal" (que puede ser 1,2,3) y "ABC" (que puede ser "A","B","C"); quiero contar con 2 condiciones; desde la hoja de cálculo lo puedo hacer sin problemas, utilizo la función =SUMAPRODUCTO((Canal=1)*(ABC="A"))
Al querér hacer esto mismo desde macros, utilizo la instrucción Application.WorksheetFunction.SumProduct((Range("Canal")=1)*(Range("ABC")="A"))
El tema es que esta instrucción me da el error "No coinciden los tipos";
Si alguno me puede dar una pista desde ya muy agradecido.
Gustavo Fellay

1 respuesta

Respuesta
1
Intenta con esta instrucción:
ActiveCell.FormulaR1C1 = "=SUMPRODUCT((Canal=1)*(ABC=""A""))"
Si solucionas el problema no olvides finalizar.
Saludos
Elsa
*** No te pierdas el nuevo manual de macros .... Más teoría, más imágenes, más rutinas....
Ok, esta forma está bien; yo lo que quiero es usar la fmla dentro del código y NO en la planilla; por ejemplo quisiera algo así:
variableCodigo = _ Application.WorksheetFunction.SumProduct((Range("Canal")=1)*(Range("ABC")="A"))
No se si soy del todo claro.
Gracias.
Gustavo
Elsa: buenos días, no se si fui del todo claro con el pedido y/o si entendiste mi problema.
Te pido si me podes comentar.
Gracias.
Gustavo
Lamento el mal entendido, en la primer consulta no se sobreentendía que debía ser en una variable.
Ahora está claro pero no he dado con el porqué del error. Por eso imaginé un truco (en caso de que no lo resuelvas) que te puede servir. Es utilizando una celda auxiliar donde podrás utilizar la fórmula que te envié y luego pasar este valor a la variable. Sería algo así:
Sub Macro9()
' Macro grabada el 22/11/2005 por Elsamatilde
' Macro que utiliza fórmulaRC para salvar problema de error
'
Dim miNro
'utiliza una celda auxiliar
Range("AE180").Select
ActiveCell.FormulaR1C1 = "=+SUMPRODUCT((Canal=2)*(ABC=""A""))"
'la variable toma el valor resultante
miNro = Range("AE180")
'opcional: se muestra la variable
MsgBox miNro
'limpiar la celda auxiliar
Range("AE180").Value = ""
End Sub
Esto te servirá hasta encontrar otra solución mejor.
Saludos
Elsa
PD) Lamento la demora, pero no todos los días tengo buena conexión....
*** No te pierdas el nuevo Manual 400Macros .... Más teoría, más imágenes, más rutinas....
Esa solución la tenía presente solo que no me parece de lo más "elegante" (adicional que no puedo asegurar que este "pisando" algún valor)

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas