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
Boa noite Rafael
Eu não entendi.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Olá,
Você poderá encontrar de outra maneira, mas tente assim.:
Sub zeros() Range("C3:HCY5511").Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.FormulaR1C1 = "0" Selection.Style = "Comma" End Sub
A sua explicação está meio confusa, confesso que depois de mandar a macro, me surgiram dúvidas. Refaça sua dúvida e acrescente mais de detalhes, mais sequências.
Eu posso estar maluco mas se eu entedi vc quer reiniciar seu arquivo!!!!
Se é isso é só salvar o arquivo modelo (cheio de formulas) com um novo nome a cada vez quer for reiniciar.
Se for dentro do mesmo arquivo é so criar uma copia da propria aba a cada vez que necessitar.
Nao precisa, e nem faz sentido, ficar copiando formulas a cada vez que for criar um novo arquivo.
PS Eu nem olhei o seu arquivo.
Marcelo Prudencio
"Começar já é a metade do caminho."
Autor Desconhecido
Simplifica que simples fica.
Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.
Oi pessoal. Vou explicar melhor.
Essa é uma macro que vai no google buscar os resultados, mas o google só permite que eu faça 10 consultas para cada 10 segundos. Como o excel é mais rápido que isso, quando ultrapassa esse limite, as consultas retornam o resultado "0".
Acontece que esse " 0" fica espalhado pelas planilhas, daí eu queria saber como faço para recalcular esses espaços vazios. Atualmente eu estou aplicando um filtro na coluna e selecionando os "0" para que eu possa colar a fórmula novamente. Preciso de um jeito mais fácil de colar essa fórmula nas células que retornaram o valor "0" por limitação do google.
Oi Luiz, cara isso me deu uma luz.
Com essa macro você conseguiu selecionar todas as células vazias e convertê-las em "0".
Bom, eu preciso selecionar todas as células "0" em fórmula, para que eu consiga recalcular a distância da macro km_Distancia.
Você consegue me ajudar nisso???
Contando a história:
Utilizo uma macro que vai no google buscar a distância entre duas cidades, via rodovia.
acontece que o google me dá duas limitações:
1ª) 2.500 consultas por IP
2ª) 10 consultas para cada 10 segundos.
Obs.: Quando ultrapasso essa limitante, os valores retornados são valores "0"
Etapas do que tenho feito:
1- Colo a fórmula em uma matriz de 50x50 células
2- Ao final da colagem, metade dos resultados retornam valor "0" (Limitante nº2)
3- Colo valor para o cálculo das fórmulas ficarem mais leves
4- Filtro coluna por coluna em busca dos valores "0"
5- Colo a fórmula pela segunda vez nas células de valor "0" para retornar o resultado do google.
6- Loop infinito
Vc busca essa informação em algum site especifico ou apenas joga na busca do google.
Marcelo Prudencio
"Começar já é a metade do caminho."
Autor Desconhecido
Simplifica que simples fica.
Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.
Prudêncio, a macro busca as informações no API do google ( https://developers.google.com/maps/docu ... ions/intro).
a Macro é essa aqui:
Function Km_Distancia(Origin As String, Destination As String) As Double 'Requer referência ao: 'Microsoft XML, v6.0' Dim Solicitacao As XMLHTTP60 Dim Doc As DOMDocument60 Dim Distancia_Pontos As IXMLDOMNode Let Km_Distancia = 0 'Checa e limpa as entradas On Error GoTo Sair Let Origin = Replace(Origin, " ", "%20") Let Destination = Replace(Destination, " ", "%20") ' Le os dados XML da API do Google Maps. Set Solicitacao = New XMLHTTP60 Solicitacao.Open "GET", "http://maps.googleapis.com/maps/api/directions/xml?origin=" _ & Origin & "&destination=" & Destination & "&sensor=false", False Solicitacao.send ' Tornando o XML legível por usar o XPath Set Doc = New DOMDocument60 Doc.LoadXML Solicitacao.responseText ' Obtendo o valor da distância entre os nós. Set Distancia_Pontos = Doc.SelectSingleNode("//leg/distance/value") If Not Distancia_Pontos Is Nothing Then Km_Distancia = Distancia_Pontos.Text / 1000 Sair: ' Tidy up Set Distancia_Pontos = Nothing Set Doc = Nothing Set Solicitacao = Nothing End Function
Qual a fórmula a ser inserida no lugar dos ZEROS ?
Oi Luiz, cara isso me deu uma luz.
Com essa macro você conseguiu selecionar todas as células vazias e convertê-las em "0".
Bom, eu preciso selecionar todas as células "0" em fórmula, para que eu consiga recalcular a distância da macro km_Distancia.
Você consegue me ajudar nisso???
Qual a fórmula a ser inserida no lugar dos ZEROS ?
Oi Luiz, cara isso me deu uma luz.
Com essa macro você conseguiu selecionar todas as células vazias e convertê-las em "0".
Bom, eu preciso selecionar todas as células "0" em fórmula, para que eu consiga recalcular a distância da macro km_Distancia.
Você consegue me ajudar nisso???
Demorei para responder pq nao tinha visto que o tópico já estava na segunda página.
Bom, é a fórmula que está na folha "f" do workbook.
=km_distancia(x,y)
x - Valor que está na direção da célula, mas em uma coluna fixa
y - Valor que está na direção da célula, mas em uma linha fixa
Oi pessoal, alguém tem alguma ideia?
ABraços
Olá, Rafael, achei muito interessante essa sua consulta...
Vejo que é um trabalhão danado mesmo esse q vc tem q fazer. Não cheguei a analisar seu código nem tampouco conheço essa API do Google, mas fiquei imaginando o seguinte:
E se...
Como vc tem essa limitação de 10 consultas/10 segundos, e se, ao invés de se concentrar em preencher com fórmulas e tudo o mais, se vc pusesse um timer para que o Excel aguardasse o tempo mínimo entre consultas (ou um pouco mais, por segurança), limitando-o de forma que sua consulta não progrida tão rapidamente?
A (muito) tempos atrás resolvi uma situação semelhante dessa maneira - embora fosse de atualização de vínculos a cada x segundos, usando o método OnTime (objeto Application). Imagino um loop onde após 10 consultas terem ocorrido ele aguarde o timer de 10s ocorrer para só então iniciar a próxima. Zera o timer novamente e assim por diante.
Acho q ainda tenho um esboço simples do funcionamento disso, se quiser posso dar uma garimpada aqui (isso foi por volta de 2002, se não me engano).
Precisando, avise, ok?
Olá, Rafael, achei muito interessante essa sua consulta...
Vejo que é um trabalhão danado mesmo esse q vc tem q fazer. Não cheguei a analisar seu código nem tampouco conheço essa API do Google, mas fiquei imaginando o seguinte:
E se...
Como vc tem essa limitação de 10 consultas/10 segundos, e se, ao invés de se concentrar em preencher com fórmulas e tudo o mais, se vc pusesse um timer para que o Excel aguardasse o tempo mínimo entre consultas (ou um pouco mais, por segurança), limitando-o de forma que sua consulta não progrida tão rapidamente?
A (muito) tempos atrás resolvi uma situação semelhante dessa maneira - embora fosse de atualização de vínculos a cada x segundos, usando o método OnTime (objeto Application). Imagino um loop onde após 10 consultas terem ocorrido ele aguarde o timer de 10s ocorrer para só então iniciar a próxima. Zera o timer novamente e assim por diante.
Acho q ainda tenho um esboço simples do funcionamento disso, se quiser posso dar uma garimpada aqui (isso foi por volta de 2002, se não me engano).
Precisando, avise, ok?
Oi Edson, cara você me deu uma grande ideia. Vê se consegue esse material ai, dai eu já passo a régua e fecho a conta. rssrsr
Abração