Ir ao conteúdo

Excel vba - FIND para localizar colunas


Ir à solução Resolvido por AfonsoMira,

Posts recomendados

Postado

tem como utilizar a opção FIND pra localizar colunas? as vezes recebo tabelas com 5 colunas mas entre elas só preciso achar aque tem o nome de "cliente" e outra de "numero" e algumas outras vezes tem umas 10 colunas e preciso encontrar essas mesmas informaçoes no meio de todas outras colunas, e pode mudar de posição dependendo do template, como faço pro FIND encontrar por nome e não por numero. Via vba no caso

Postado

Boas @isabela queiroz ,
Experimente o seguinte:

 

Sub procurarColunas()

Dim wb As Workbook: Set wb = ThisWorkbook
Dim ws As Worksheet: Set ws = wb.ActiveSheet

Dim rngProcura As Range: Set rngProcura = ws.Range("A1:XFD1048576")
Dim rngCliente As Range
Dim rngNumero As Range

Dim colunaCliente As Long
Dim colunaNumero As Long

With rngProcura
    Set rngCliente = .Find(what:="Cliente", LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False)
    If Not rngCliente Is Nothing Then
        colunaCliente = rngCliente.Column
    End If
    
    Set rngNumero = .Find(what:="Numero", LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False)
    If Not rngNumero Is Nothing Then
        colunaNumero = rngNumero.Column
    End If
End With

MsgBox "A palavra Cliente aparece na coluna " & colunaCliente & " e a palavra Numero na coluna " & colunaNumero

End Sub

 

  • Amei 1
  • Solução
Postado
Sub procurarColunas()

Dim wb As Workbook: Set wb = ThisWorkbook
Dim ws As Worksheet: Set ws = wb.ActiveSheet

Dim rngProcura As Range: Set rngProcura = ws.Range("A1:XFD1048576")
Dim rngCliente As Range
Dim rngNumero As Range

Dim colunaCliente As Long
Dim colunaNumero As Long

With rngProcura
    Set rngCliente = .Find(what:="Cliente", LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False)
    If Not rngCliente Is Nothing Then
        colunaCliente = rngCliente.Column
    End If
    
    Set rngNumero = .Find(what:="Numero", LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False)
    If Not rngNumero Is Nothing Then
        colunaNumero = rngNumero.Column
    End If
End With

'Copia coluna Cliente
ws.Columns(colunaCliente).Copy

'Copia coluna Numero
ws.Columns(colunaNumero).Copy

End Sub

 

  • Amei 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...