Logo Hardware.com.br
Playboy
Playboy Geek Registrado
3.4K Mensagens 46 Curtidas

[Resolvido] Procurar palavra em uma coluna com VBA

#1 Por Playboy 24/03/2022 - 01:18
Boa noite a todos...

Preciso checar se uma palavra está presente em uma coluna. Para isso, estou tentando utilizar o While, mas está dando um erro e não consigo resolver. Tenho pouca noção de VBA, por isso, venho mais uma vez, pedir a ajuda da comunidade. Em anexo a planilha exemplo.



Gratidão

Anexos

Playboy
Playboy Geek Registrado
3.4K Mensagens 46 Curtidas
#3 Por Playboy
28/03/2022 - 23:49
GuimeM disse:
Sub ProcuraProduto()
If Application.CountIf(Range("Lista_Produtos&quot, Range("Produto&quot.Value) Then
MsgBox "produto encontrado"
Else: MsgBox "produto não encontrado"
End If
End Sub



@GuimeM, boa noite. Dessa forma não me atende. Veja bem, Fiz uma planilha que se assemelha bem às minhas necessidades. Pensei que, com sua explicação eu daria conta, mas minha necessidade, vai além do meu conhecimento de VBA. Preciso listar os alunos de uma determinada turma. O retorno deve atender a 4 critérios. Ano, Semestre, Turno e Turma.

Mas, tem alguns problemas.. em anexo a planilha com as necessidades e os problemas detectados por mim... agradeço muito se puder ajudar...

Gratidão

Anexos

Playboy cap_chateado.png
GuimeM
GuimeM Super Participante Registrado
146 Mensagens 110 Curtidas
Playboy
Playboy Geek Registrado
3.4K Mensagens 46 Curtidas
#5 Por Playboy
04/04/2022 - 02:02
GuimeM disse:


"O retorno deve atender a 4 critérios. Ano, Semestre, Turno e Turma."
Veja se este código atende.
Sub ListarAlunos()
Application.ScreenUpdating = False
[J5:O13] = ""
With Sheets("Planilha2&quot
On Error Resume Next
.ShowAllData
On Error GoTo 0
With .Range("B3:G" & .Cells(Rows.Count, 2).End(xlUp).Row)
.AutoFilter 3, [F2]
.AutoFilter 4, [C2]
.AutoFilter 5, [I2]
.AutoFilter 6, [L2]
End With
If .AutoFilter.Range.Columns(2).SpecialCells(xlCellTypeVisible).Count > 1 Then
.Range("B4:G" & .Cells(Rows.Count, 2).End(xlUp).Row).Copy [J5]
Else: MsgBox "CRITÉRIOS NÃO ENCONTRADOS"
End If
.ShowAllData
End With
End Sub


Aproveite para colocar "Turma" em B2 no lugar de "Curso".



Boa noite @GuimeM, primeiramente, gostaria de agradecer muito, mas muito mesmo por retirar um um pouco do seu precioso tempo para ajudar... gratidão por isso.
O código postado por você me atende, mas eu não preciso que liste todas as informações, eu preciso que liste apenas o código do aluno e o nome, as demais informações não há necessidade de listar, são apenas filtro mesmo.
Tem um pequeno problema, o local onde é listado o nome dos alunos (na planilha1), possui uma formatação de cor, negrito, centralização... quando é listado os alunos, essa formatação se perde, preciso que mantenha.

Outra coisas, na minha planilha, o código está na primeira coluna, o nome na coluna 10, por exemplo, eu gostaria de saber como pegar colunas alternadas do banco de dados que não estão em sequência, Qual seria a mudança no código?. Vou colocar a planilha em anexo para melhor entendimento.

Agradeço muito, mais uma vez, que Deus ilumine e abençoe sua vida... muita paz e luz em seu caminho

Anexos

Playboy cap_chateado.png
GuimeM
GuimeM Super Participante Registrado
146 Mensagens 110 Curtidas
#6 Por GuimeM
04/04/2022 - 09:31
Veja se este atende.


Sub ListarAlunos()
Dim UL As Long
Application.ScreenUpdating = False
[J5:O13] = ""
With Sheets("Planilha2&quot
On Error Resume Next
.ShowAllData
On Error GoTo 0
UL = .Cells(Rows.Count, 2).End(xlUp).Row
With .Range("B3:J" & UL)
.AutoFilter 6, [turno]
.AutoFilter 7, [C2]
.AutoFilter 8, [I2]
.AutoFilter 9, [L2]
End With
If .AutoFilter.Range.Columns(2).SpecialCells(xlCellTypeVisible).Count > 1 Then
.Range("B4:B" & UL).Copy
[J5].PasteSpecial xlValues
.Range("F4:F" & UL).Copy
[K5].PasteSpecial xlValues
[L5].Resize(Application.CountA([K5:K13])) = [O2]
Else: MsgBox "CRITÉRIOS NÃO ENCONTRADOS"
End If
.ShowAllData
End With
[J5].Activate
End Sub
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal