Ir para conteúdo
Fórum Script Brasil
  • 0

Pesquisa de valores


DANYY

Pergunta

Boa tarde pessoal!! Estou com duas duvidas:

to usando uma macro pra localizar valores e alterar a celula encontrada com o outro valor..:

Cells.Find(What:="1005", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
    ActiveCell.FormulaR1C1 = "1.1.2.01"
Ai beleza esta funcionando certinho...só que como essa planilha tem q ser gerada todo mes tem meses que pode ocorrer desse codigo 1005 não ter mesmo na planilha...ai td bem..fui testar e quando na planilha não tem esse codigo ta dando erro..como que eu faço pra ignorar quando não tiver esse codigo? a outra duvida é assim a coluna b tem os os valores assim: 1010101001 na proxima celula 1010101002 e assim sucessivamente... e ai no mesmo codigo anterior quando encontrar o valor pesquisado ao alterar a celula com o valor que eu parametrizei teria que adicionar mais os tres ultimos digitos do valor da coluna B tentei fazer mais ta dando erro:
Dim classificador as string
classificador = cells(i,2) = Right (classificador, 3)

Cells.Find(What:="1005", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
    ActiveCell.FormulaR1C1 = "1.1.2.01" & classificador

Bom são essas minhas duvidas!!!

Brigaduu

Editado por Jonathan Queiroz
Remover caixa alta do título conforme regra 3.7 e adicionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

danyy, o problema é q você manda ativar (metodo Activate()) direto. se ele não achar o texto, não existe o q ativar, por isso o erro. tenta assim:

Dim classificador as string, pesquisa As Range
classificador = cells(i,2) = Right (classificador, 3)

Set pesquisa = Cells.Find(What:="1005", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)

If Not pesquisa Is Nothing Then
    pesquisa.Activate
    ActiveCell.FormulaR1C1 = "1.1.2.01" & classificador
End If[/code]

Link para o comentário
Compartilhar em outros sites

  • 0

Oiee Bom dia!! Kuroi, muito obrigada deu certinho o lance da pesquisa...Mais pra complementar com os tres ultimos digitos da coluna classificador não deu certo ao invés dele trazer os tres ultimos digitos aparece como "verdadeiro"...como que eu faço pra concatenar esses valores na celula?

Brigadu mais uma vez!!

Bjs

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia!!

então seguindo o que você passou quase que consegui chegar la, só que o q aconteceu foi que ao invés de pegar a informacao da célula ao lado pra concatenar acabou pegando da primeira celula A1...preciso que pegue os tres ultimos caracteres da celula ao lado.... tipo assim:

A1 = 1.1.1.01. B1 = 10000001

A2 = 1.1.1.02. B2 = 10000002

A3 = 1.1.1.03. B3 = 10000003

e assim sucessivamente.....

Ai quando executar preciso que nas celulas da coluna A fique assim:

A1 = 1.1.1.01.001

A2 = 1.1.1.02.002

A3 = 1.1.1.03.003

usei o codigo:

Dim classificador As String, pesquisa As Range

Dim junta As String

For i = 1 To 1

junta = Cells(i, 2)

classificador = Cells(i, 1) & Right(junta, 3)

ActiveCell.FormulaR1C1 = "1.1.1.01" & classificador

Antes eu usava essa formula aqui:

=CONCATENAR("1.1.2.01.".DIREITA(B10.3)) e assim até a ultima linha que tinha informacao...Como que posso fazer isso pelo VBA??

Agradeço mais uma vez!!

Editado por DANYY
Link para o comentário
Compartilhar em outros sites

  • 0

Bom diaaaa!!!! consegui concatenar os valores assim:

Private Sub CommandButton6_Click()
Sheets("Ativo").Select

Range("B5:B65536").Select
ActiveCell.FormulaR1C1 = "=+RC[-1]& right(RC[1], 3)"
Range("B5").Select
    Selection.AutoFill Destination:=Range("B5:B65536"), Type:=xlFillDefault
    Range("B5:B65536").Select
  
    
Columns("A:A").Select
Selection.EntireColumn.Hidden = True



End Sub

Deu certo...porem tem um probleminhaa..rsrss...quando os tres ultimos caracteres for zero não deve concatenar...ai num sei como q eu faço isso...

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde!!!

Muito Obrigada viu deu certinhoo!! só fiz uma alteraçãozinha porque da forma que você me passou quando os tres ultimos caracteres é zero não esta trazendo nada na celula e teria q deixar a informacao como já estava, ficou assim:

ActiveCell.FormulaR1C1 = "=+ If(Right(RC[1], 3) = ""000"", RC[-1], RC[-1] & Right(RC[1], 3))"

Brigadão viu!!! Bjs

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...