Página 1 de 1

Filtro Avançado

Enviado: Seg Mar 17, 2014 5:04 pm
por betoacunha
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

Re: Filtro Avançado

Enviado: Qua Mar 19, 2014 10:47 pm
por Mauro Coutinho
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.

Re: Filtro Avançado

Enviado: Sáb Mar 29, 2014 4:32 pm
por betoacunha
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

Re: Filtro Avançado

Enviado: Dom Jun 22, 2014 12:48 pm
por TIAGO
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?