olha, o metodo do mauro foi uma aplicação mais direta da minha segunda alternativa
isso pq usar range montada em Application.WorksheetFunction é bem complicado
pq ranges montadas são como textos
mas se vc estudar as referencias talvez vc consiga adaptar
parte da minha solução usa apenas uma celula
e vc pode adicionar as referencias da textbos diretamente nos campos que eu separei
'coloque em um modulo e veja como funciona, assim vai poder fazer testes mais facilmente
Sub Imag()
LF = Cells(Rows.Count, "F").End(xlUp).Row vai pegar a ultima linha da coluna de valores
fator = """SAÍDA"""
valores = "F2:F" & LF ' coluna onde tem valores para somar
fatorg = "E2:E" & LF ' a coluna onde vai procurar se é saida ou entrada
data_ini = "G2:G" & LF ' a coluna onde vai procurar a menor data
data_fim = "H2:H" & LF ' a coluna onde vai procurar a Maior data
dt1 = 41397 'aqui vc coloca o valor da textbox3 a menor data de procura
dt2 = 41397 'aqui vc coloca o valor da textbox4 a maior data de procura
dd = "(" & valores & ")*(" & _
fatorg & "=" & fator & ")*(" & _
data_ini & ">=" & dt1 & ")*(" & _
data_fim & "<=" & dt2 & ")"
Cells(1, "J").Formula = "=SumProduct(" & dd & ")"
' depois vc pega o valor da celula e aplica no textbox
MsgBox Cells(1, "J").Value
end sub
olha vc aplicar o valor na celula e depois le para o textbox não vai influenciar na velocidade afinal é por interferência humana a busca
existe varias maneiras de se fazer
Se vc se esforçar um pouco eu garanto que vc consegue aplicar e do jeito que vc quer
eu só gostei pq aprendi a usar o somaproduto que nunca tinha usado
e no momento estou com um projeto meu para resolver
boa sorte
Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.
"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"
Postado : 29/04/2015 2:37 pm