Notifications
Clear all

Preencher espaços vazios com fórmula

17 Posts
6 Usuários
0 Reactions
2,758 Visualizações
Rafaelgs
(@rafaelgs)
Posts: 12
Active Member
Topic starter
 

Oi pessoaal, nessa pasta eu tenho duas planilhas... Uma com a matriz e a outra com apenas a fórmula, para que eu nao precise ficar digitando toda vez que eu abrir o arquivo.
Bom, Toda vez que eu colo essa fórmula em um número muito grande de células, algumas delas ficam com 0 ou - (Dependendo da versão do Excel)
Quando isso acontece, para eu reparar essa falha, eu preciso ficar filtrando coluna por coluna, acontece que são mais de 5 mil colunas para ficar filtrando, então eu queria saber se há alguma forma ou fórmula que eu possa substituir esses espaços vazios pela fórmula....

Abraçosssssssssssssssssssss

 
Postado : 03/11/2015 5:34 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Rafaelgs

Estive dando uma analisada em seu problema e em seu código e a sugestão que te dei de colocar um timer dentro da tua function não resolveria, pois como cada célula tem a fórmula (ou seja, vc não passa um range para a tua function e sim uma única célula) vc ficaria refém do recálculo do Excel, portanto no ritmo do Excel/processador e como percebi que vc já desabilitou o recálculo automático do Excel, não seria essa a solução.

Entretanto, penso que uma solução bem melhor seria vc criar uma Sub passando o intervalo das células q vc quer atualizar/preencher/reconsultar. Nada de ficar colocando uma fórmula prá cada célula.

Essa Sub antes de tudo analisaria os dados do range que foi passado e, para os que já existirem valores maiores que zero ela não faria nada, mas para os que estiverem vazios ou com "0" ela chamaria a sua function Km_Distancia passando os valores a (re)consultar e os inseriria no local correto. Nela inclusive você poderia implementar um contador para ir somando quantas consultas já foram feitas (devido à limitação das 2500 consultas por IP) e também, agora sim, inserir um timer para pausar até atingir os 10 segundos após cada grupo de 10 consultas (devido a outra limitação 10consultas a cada 10s).

Ficaria show de bola, pois vc não teria mais que ficar selecionando-copiando-colando-filtrando-apagando-selecionando de novo-copiando de novo-colando de novo...

Tô meio sem tempo agora (correria de final de ano) prá te ajudar mais no desenvolvimento, mas podemos seguimos trocando idéias, ok?

 
Postado : 03/12/2015 8:16 am
(@pexis)
Posts: 112
Estimable Member
 

timer: http://stackoverflow.com/questions/2319 ... -120-secon
cria uma sub recursiva q passa os dados da prox celula a ser preenchida nesse esquema

Public Sub EventMacro(row as integer, col as integer)
origin = cell(1,col)
destination = cell(row,1)
cell(row,col) = Km_Distancia(origin , destination)
if row == 5510 then {
if col == 5510 then exit sub
end if
col = col+1
row = 2
} else row = row+1

end if
alertTime = Now + TimeValue("00:00:01")
Application.OnTime alertTime, "EventMacro(row,col)"
End Sub

+- isso ae a logica, faz mto tempo q n uso vba entao n lembro a sintaxe, oq tem q declarar, etc...

nao sei se o excel trava enquanto estiver rodando a macro, se nao travar pode colocar algum valor em alguma celula para parar a macro e colocar os valores de lin e coluna atuais em algumas celulas p/ continuar depois, tipo
if cell(0,0)=="S" then{
cell(0,1) = row
cell(1,0) = col
exit sub
end if

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 03/12/2015 11:01 pm
Página 2 / 2