Hola Grupo !
En una fila 20 tengo desde la columna AN hasta la BK diferentes valores,
Algunas de las celdas tienen color de fondo verde (indican que sus
cantidades ya se han relacionado) y deseo sumar solo las que no tengan fondo
verde.
para lograrlo cree algunas UDFs.
Y utilizo lo siguiente:
=Scolor(AN20,BK20,$F$6)
donde F6 indica la nombre de la hoja donde aplico la funcion ej: "BB-O"
La pregunta es: Como optimizar esta funcion ?
como introducir directamente el rango en forma AN20:BK20 ?
o, en caso de ser varias filas ??
o simplemente varias filas y una sola columna ???
alguna otra forma/metodo/ for endfor do while with xext ,???etc. para
agilizar el calculo ??
el calculo lo realizo en cerca de cien hojas y en aproc doscientas filas es
decir que la funcion scolor() aparece en aprox 20000 celdas
? como crear una funcion que 'funcione" con algo asi como esto:
= sumar.si (color(an20:ak20),an20:ak20,0) o introucida en forma matricial ???
Cuando ejecuto paso a paso he notado que se recalculan todas las formulas
scolor,
como hacer para que se recalculen solamente las de la hoja activa???
como introducirlo de la forma scolor(Fila inicial,Columna inicial,Fila
Final,Columna Final,Hoja as name)
En un modulo coloque:
****
Option Explicit
Function scolor(A As Range, B As Range, H As Range)
Application.Volatile
Dim X As Integer
Dim V As Variant
Dim C As Integer
Dim F As Variant
Dim G As Variant
Set F = Application.ThisWorkbook.Worksheets(H.Value)
scolor = 0
C = A.Row
For X = A.Column To B.Column
V = F.Cells(C, X).Interior.color
scolor = scolor + IIf(V = RGB(255, 255, 255), F.Cells(C, X), 0)
Next
End Function
' En este caso solo suma las que tengan fondo blanco
****
Public Function color(A As Range) As Long
Application.Volatile
color = A.Interior.color
End Function
****
Public Function NOMBREH()
NOMBREH = Application.ActiveSheet.Name
End Function
****
con respecto a la funcion nombre como hago para que me devuelva el nombre de
la hoja en la que introduzco NOMBREH() y no en la activa ???
(he leido que no existe forma de identificar un nombre de hoja a menos que
el libro se haya guardado previamente ??? con este metoodo pasa lo mismo??? )
Gracias de antemano.. por sus
ideras/sugerencias/recomendaciones/soluciones/observaciones/comentarios ... y
disculpen un solo post para diferentes problemas pero todo tiene relacion y
pertenecen a un problema comun..
agradezco me envien informacion acerca de links con
ejemplos/metodos/formas/maneras de Programar UDFs y como optimizarlas...
y ... otra preguntica e mas: que es recomendable usar formunas en forma
matricial ctrl+shift+enter o replicarlas en todos los rangos , cual medodo es
mas efectivo, mas rapido, ocupa menos memoria,etc.
Me alimento del conocimiento de todos
Me alimento del conocimiento de todos
Leer las respuestas