jtiagodias Posted September 21, 2009 at 02:43 PM Report Share #288004 Posted September 21, 2009 at 02:43 PM Ora viva, Depois de algum tempo de afastamento destas bandas cá estou novamente cheio de dúvidas... Há quem diga que programar é como andar de bicicleta mas eu não concordo... Algum tempo sem pensar nestas rotinas e tudo se torna muito mais complicado... Mas pronto... Basicamente preciso de ajuda em muita coisa. Tema: Tenho uma tabela que exporto de outro programa. Têm diversos elmentos e, com base num deles, que o utilizador define, quero seleccionar todas as linhas que cumprem o critério, copiá-las e colá-las noutro fichiero. Ex: Nome Variável Etiqueta Indice asdasdf fsdf asfsf 11 assdf fsdf asfsf 11 ... dfgfg sdfgsdf adfsdf 500 dfgfg sdfgsdf adfsdf 500 Objectivo: O utilizador selecciona qual o indice que pretende. O excel percorre toda a lista e selecciona todos os que têm o indice que ele seleccionou. Problema... Fiz um if com offset e o código só para na última liha que verifica a condição... No exemplo que dei acima queria, po exemplo, que ele seleccionasse ambas as linhas que tinham indice 11 ou 500 e, caso existissem mais linhas, que elas tb fossem seleccionadas... Para depois copiar e colar numa folha de cálculo nova... Já agora como consigo mudar o nome da dolha de cálculo no ficheiro que criei para colar estes valores... Desde já obrigado Link to comment Share on other sites More sharing options...
jtiagodias Posted September 23, 2009 at 09:32 AM Author Report Share #288263 Posted September 23, 2009 at 09:32 AM Ora viva... Nenhuma resposta??? Certamente que não me fiz explicar bem... Basicamente o que eu quero é, ao percorrer uma lista de dados, quando o primeiro resultado que ecnontrar for igual à condição que coloquei, o código selecciona essas linha, prossegue pelas linhas seguintes enquanto a condição se verificar e, na primeira célula em que a condição não se verificar deixa de seleccionar as linhas... Assim consigo seleccionar todas as linhas que, numa célula, verifiquem a condição pretendia e depois posso copiá-las e colar onde pretendo. Alguém consegue dar-me uma ajuda neste código??? Link to comment Share on other sites More sharing options...
jmaocubo Posted October 20, 2009 at 02:02 PM Report Share #292528 Posted October 20, 2009 at 02:02 PM Porque não experimentas o SOMA.SE? Link to comment Share on other sites More sharing options...
MetalFatigue Posted October 23, 2009 at 04:53 PM Report Share #293046 Posted October 23, 2009 at 04:53 PM vê isto: http://www.contextures.com/xladvfilter01.html Se quiseres código VBA com isso também te arranjo. Mas se googlares por "VBA excel AdvancedFilter" encontras muita coisa. Basicamente defines um filtro e podes dizer para ele copiar para outro lado. Link to comment Share on other sites More sharing options...
jtiagodias Posted October 23, 2009 at 08:12 PM Author Report Share #293093 Posted October 23, 2009 at 08:12 PM Provavelmente não me expliquei bem... O que quero é uma macro que seleccione um grupo de linhas que satisfaça um critério pré-definido... De qualquer forma obrigado pela dic dos filtros... Quem puder ajduar com o que eu quero.. Link to comment Share on other sites More sharing options...
joseA Posted October 23, 2009 at 09:56 PM Report Share #293106 Posted October 23, 2009 at 09:56 PM Verifique este exemplo: http://www.4shared.com/file/143118269/69b6b982/Indice.html :coolsmiley: Link to comment Share on other sites More sharing options...
jtiagodias Posted October 24, 2009 at 02:40 PM Author Report Share #293172 Posted October 24, 2009 at 02:40 PM Caro joseA.. Incrivel... Isto quem sabe sabe.... J+a verifiquei o exemplo e está muito bom... Faz mais do que estava a pedir e, na realidade, responde a quase todas as minhas dúvidas. Espero não ter dado muito trabalho e/ou preocupação... Vou utilizá-lo sem dúvida... Obrigado pela indispensável ajuda. ESTE TÓPICO ESTÁ CONCLUÍDO. Desculpem mas não sei como o poderei indicar como concluído. Link to comment Share on other sites More sharing options...
MetalFatigue Posted October 24, 2009 at 09:09 PM Report Share #293235 Posted October 24, 2009 at 09:09 PM Provavelmente não me expliquei bem... O que quero é uma macro que seleccione um grupo de linhas que satisfaça um critério pré-definido... De qualquer forma obrigado pela dic dos filtros... Quem puder ajduar com o que eu quero.. Se calhar eu é que não me expliquei bem ou não dei a papinha toda. O advanced filtering permite fazer o mesmo que o joseA mostrou (sem retirar qualquer mérito, pois está bastante bem feito). O advanced filtering pode copiar segundo um determinado critério para outra zona também, sem a necessidade de código, ou com uso de código para ser mais flexível. Advanced filtering é diferente de um filtro normal. Link to comment Share on other sites More sharing options...
joseA Posted October 25, 2009 at 09:38 PM Report Share #293332 Posted October 25, 2009 at 09:38 PM Na verdade o exemplo passado é sim um filtro. Inclusive no combobox1 ocorre a filtragem de dados, não repetidos da coluna D da folha de dados. Sim, com a aplicação do advanced filtering orientado pelo nosso amigo MetalFatigue também seria possivel fazer. Quantas mais soluções se apresentarem mais rico se torna o tópico. :lamo: 😛 Link to comment Share on other sites More sharing options...
MetalFatigue Posted October 26, 2009 at 03:11 PM Report Share #293408 Posted October 26, 2009 at 03:11 PM Sem dúvida. Eu só acho que se as ferramentas já existem não é preciso andar a inventa-las 👍 Além de que o rapaz deve ter lido "Filter" e pensou logo que era a filtragem normal e que eu estava a dizer coisas fora do contexto do que ele pretendia. Foi mais para o esclarecer. cumprimentos. Link to comment Share on other sites More sharing options...
ErnaniDias Posted June 29, 2011 at 02:35 PM Report Share #399578 Posted June 29, 2011 at 02:35 PM Na verdade o exemplo passado é sim um filtro. Inclusive no combobox1 ocorre a filtragem de dados, não repetidos da coluna D da folha de dados. Sim, com a aplicação do advanced filtering orientado pelo nosso amigo MetalFatigue também seria possivel fazer. Quantas mais soluções se apresentarem mais rico se torna o tópico. :lamo: 😉 Bom dia. Em qual momento nos códigos abaixo relaciono a Coluna D como referência para realizar o Filtro? E como faço para alterar para outro coluna? Obrigado desde já. Sub FiltroAvançado() Application.EnableEvents = False Dim lastRow As Long Dim lastResultRow As Long Dim X As Long ' Verifica qual a ultima célula preenchida lastRow = Plan1.Cells(Rows.Count, 1).End(xlUp).Row ' Apaga valores anteriores Plan2.Range("A2:AE65536").ClearContents lastResultRow = 2 'linha resultado ' Ciclo em todas as linhas For X = 2 To lastRow '1 Linha dados pequisa ' verifica se o valor é igual ao da pesquisa If Plan1.Cells(X, 4).Value = UserForm1.Label2.Caption Then '11 coluna pequisa ' Copia os valores Plan2.Cells(lastResultRow, 1).Value = Plan1.Cells(X, 1).Value Plan2.Cells(lastResultRow, 2).Value = Plan1.Cells(X, 2).Value Plan2.Cells(lastResultRow, 3).Value = Plan1.Cells(X, 3).Value Plan2.Cells(lastResultRow, 4).Value = Plan1.Cells(X, 4).Value Plan2.Cells(lastResultRow, 5).Value = Plan1.Cells(X, 5).Value lastResultRow = lastResultRow + 1 End If Next Application.EnableEvents = True End Sub Link to comment Share on other sites More sharing options...
joseA Posted July 1, 2011 at 02:59 AM Report Share #400049 Posted July 1, 2011 at 02:59 AM No caso a da coluna D (4) esta relacionada pelo valor númerico. Explique melhor o que pretendes ou mostre um exemplo para facilitar. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now