ATENÇÃO NOVOS USUÁRIOS

Se registrou recentemente? Seu cadastro será avaliado e mendiante aprovação, a conta será ativada e você poderá usufruir do fórum. O tempo de avaliação gira em torno de 24 a 48 horas.

Esqueceu sua senha?

Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

Filtro Avançado

Dúvidas gerais sobre Excel
betoacunha
Colaborador
Colaborador
Mensagens: 27
Registrado em: Qua Jul 07, 2010 1:38 pm

Filtro Avançado

Mensagem por betoacunha » Seg Mar 17, 2014 5:04 pm

Olá Pessoal ...

Recentemente o JoséA postou o código abaixo para filtrar meses. Há tempos eu uso ele nos meus trabalhos e me é muito útil. É possível adapta-lo para filtrar lançamentos duplicados para edição? Nas pesquisas no fórum só encontrei códigos que filtram a partir da 2ª Repetição. Eis o código:

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 = 7 To lastRow '1 Linha dados pequisa
' verifica se o valor é igual ao da pesquisa
If Month(CDate(Plan1.Cells(X, 4).Value)) = Plan1.Range("D3").Value Then '4coluna 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 = Format(Plan1.Cells(X, 5).Value, "#,##0.000")
lastResultRow = lastResultRow + 1
End If
Next
Application.EnableEvents = True
Plan2.Select
If Plan2.[A2].Value = "" Then
MsgBox "Não temos vencimentos para o Mês pesquisado..."
End If
End Sub

. . . ou outras sugestões.

Abs
Beto Cunha



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Mauro Coutinho
Jedi
Jedi
Mensagens: 1559
Registrado em: Sáb Mar 13, 2010 8:10 pm
Localização: São José dos Pinhais - Pr

Re: Filtro Avançado

Mensagem por Mauro Coutinho » Qua Mar 19, 2014 10:47 pm

Beto, ficou confuso :

É possível adapta-lo para filtrar lançamentos duplicados para edição?
Duplicados para edição ? O que quer dizer ?

Nas pesquisas no fórum só encontrei códigos que filtram a partir da 2ª Repetição
Que filtram a partir da 2ª Repetição ????

Melhor anexar um modelo simplificado detalhando melhor.


Mauro Coutinho - Exemplos Somente em Office 2003
São José dos Pinhais - Pr
Se sua Duvida foi solucionada . . . .Acrescente [RESOLVIDO] ao título.
Ficou satisfeito com o FORUM ? Divulgue, indicando-o aos colegas !

betoacunha
Colaborador
Colaborador
Mensagens: 27
Registrado em: Qua Jul 07, 2010 1:38 pm

Re: Filtro Avançado

Mensagem por betoacunha » Sáb Mar 29, 2014 4:32 pm

Valeu Mauro, como sempre atencioso . . .

Estou cadastrando alunos da minha escola cuja fonte é colada de uma fonte externa anualmente. Minha intenção é através do listbox de um form escolher qual registro deve permanecer de acordo com os dados deste registro e excluir o restante. o Form já está Ok. Os códigos que encontrei listam somente a partir da 2ª Repetição quer dizer: Se ocorresse 3 registros iguais ele listavam 2. Mas improvisei com os procedimentos a seguir:
Na planilha onde constam os registros achei um código que colore todos os repetidos:

Sub ColorirRepet()
Dim Lin As Long, k As Long
Application.ScreenUpdating = False
Lin = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For k = Lin To 1 Step -1
If Application.CountIf(Range("B2:B" & Lin), Cells(k, 2)) > 1 Then
Rows(k).Interior.Color = 255
End If
Next k
Application.ScreenUpdating = True
End Sub

E para transpor os repetidos para outra panilha para listar num listbox do form usei este:

Application.EnableEvents = False
Dim lastRow As Long
Dim lastResult As Long
Dim x As Long

lastRow = Sheets("Alunos").Cells(Rows.Count, 1).End(xlUp).Row
Sheets("Rpt").Range("Y2:AF2000").ClearContents
lastResult = 2
For x = 2 To lastRow

If Sheets("Alunos").Cells(x, 2).Interior.Color = 255 Then
Sheets("Rpt").Cells(lastResult, 25).Value = Sheets("Alunos").Cells(x, 1).Value
Sheets("Rpt").Cells(lastResult, 26).Value = Sheets("Alunos").Cells(x, 2).Value
Sheets("Rpt").Cells(lastResult, 27).Value = Sheets("Alunos").Cells(x, 3).Value
lastResult = lastResult + 1
End If
Next
End Sub

E até agora está tudo Ok, mas não posso deixar de te agradecer.

Um Abraço

Beto Cunha



TIAGO
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Sáb Jun 21, 2014 8:54 pm

Re: Filtro Avançado

Mensagem por TIAGO » Dom Jun 22, 2014 12:48 pm

PESSOAL preciso de ajuda

qual função , ou como posso gerar numeros aletorios cm os seguintes criterios;

EX: EM uma tabela de 100 numeros , preciso de 50 numeros , porem 30 serão sempre os mesmo e os outros 20 sera aleatorios, para cada coluna , preciso de 50 COLUNAS, com 30 fixos ,mais 20 aleatorios para cada jogo, eu nao consigo fazer com que no segundo jogo os 20 dentre 70 da tabela disponiveis seja diferente do primeiro jogo.

SERÁ NECESASARIO VBA? ou alguns filtro avnçado?



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder