Ir ao conteúdo
  • Cadastre-se

Formula - Copiar dados de célula caso tenha correspondente


Ir à solução Resolvido por Patropi,

Posts recomendados

Boa tarde,

 

Estou criando uma planilha de follow-up de pedido semiautomatica, enviando por e-mail a cobrança e tudo mais.

Tenho uma lista com todos e-mails de fornecedores e os pedidos.

 

Preciso da formula dessa maneira:

1) Localiza onde está o correspondente do Q4 em toda coluna A na Plan2
....SE NÃO existir correspondente aparece a frase: Não existe endereço

2) SE EXISTIR correspondente, ele copia o valor de Bx para R4

 

Planilha e imagens anexadas abaixo!

post-749576-0-71216600-1419877017_thumb.

post-749576-0-81501500-1419877027_thumb.

Teste 1.xlsx

Teste 1.zip

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
  • Solução

Felipe

 

Para falar a verdade nem olhei na tua primeira postagem, porque normalmente, as pessoas anexam na mesma mensagem do aviso.

Vamos ver se eu entendi o que você deseja:

 

Copie e cole está fórmula célula R4 da Plan1 e arraste para as demais linhas da coluna.

=SEERRO(PROCV(Q4;Plan2!$A$1:$B$1000;2;0);"Não exsite Endereço")

 

Dê retorno.

 

Se a resposta foi útil, clique em Curtir.

 

[]s

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Felipe, apesar de solicitar uma formula, segue opção c/ macro: 

 

Sub Busca()
    Dim ws1, ws2 As Worksheet
    Dim i As Long: i = 4
    Dim ul, ul2 As Long
    Dim o que As String
    Set ws1 = Sheets("plan1")
    Set ws2 = Sheets("plan2")
    ul = ws1.Cells(Rows.Count, "q").End(xlUp).Row
    ul2 = ws2.Cells(Rows.Count, "a").End(xlUp).Row
    With ws2.Range("a1:a" & ul2)
        For i = i To ul
            o que = ws1.Range("q" & i)
            Set C = Nothing
            Set C = .Find(o que, , LookIn:=xlValues, lookat:=xlWhole)
            If Not C Is Nothing Then
                firstAddress = C.Address
                Do
                    ws1.Range("r" & i) = C.Offset(0, 1).Value
                    Set C = .FindNext©
                Loop While Not C Is Nothing And C.Address <> firstAddress
            Else
                ws1.Range("r" & i) = "Não existe endereço"
            End If
        Next
    End With
End Sub

 

Editado: Nao havia entendido o que queria dizer c/ Bx, mas ja corrigi o codigo acredito q agora está de acordo.

             Desconsidere o anexo, ou copie o codigo acima e cole no modulo1, substituindo o presente.

Teste 1-v1.zip

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Felipe

 

Para falar a verdade nem olhei na tua primeira postagem, porque normalmente, as pessoas anexam na mesma mensagem do aviso.

Vamos ver se eu entendi o que você deseja:

 

Copie e cole está fórmula célula R4 da Plan1 e arraste para as demais linhas da coluna.

=SEERRO(PROCV(Q4;Plan2!$A$1:$B$1000;2;0);"Não exsite Endereço")

 

Dê retorno.

 

Se a resposta foi útil, clique em Curtir.

 

[]s

Tranquilo, eu postei lá porque poderia ser que outra pessoa também tivesse uma ideia.

 

Em relação a macro, funcionou MUITO bem. A planilha original não foi postada porque tem muitos dados comerciais.

Funcionou perfeitamente!

 

Essa planilha tem muita macro e programação VBA, na verdade sou melhor nisso. Quando estiver pronta eu pretendo postar com os detalhes dela, na rede não tem uma planilha de follow-up de pedidos de compra tão detalhada e com tantas ferramentas quanto essa que estou fazendo.

Aqui tem alguma área para isso?

 

No mais, muito obrigado!

Att

 

Felipe Carvalho.

Felipe, apesar de solicitar uma formula, segue opção c/ macro: 

 

Sub Busca()

    Dim ws1, ws2 As Worksheet

    Dim i As Long: i = 4

    Dim ul, ul2 As Long

    Dim o que As String

    Set ws1 = Sheets("plan1")

    Set ws2 = Sheets("plan2")

    ul = ws1.Cells(Rows.Count, "q").End(xlUp).Row

    ul2 = ws2.Cells(Rows.Count, "a").End(xlUp).Row

    With ws2.Range("a1:a" & ul2)

        For i = i To ul

            o que = ws1.Range("q" & i)

            Set C = Nothing

            Set C = .Find(o que, , LookIn:=xlValues, lookat:=xlWhole)

            If Not C Is Nothing Then

                firstAddress = C.Address

                Do

                    ws1.Range("r" & i) = C.Offset(0, 1).Value

                    Set C = .FindNext©

                Loop While Not C Is Nothing And C.Address <> firstAddress

            Else

                ws1.Range("r" & i) = "Não existe endereço"

            End If

        Next

    End With

End Sub

 

Editado: Nao havia entendido o que queria dizer c/ Bx, mas ja corrigi o codigo acredito q agora está de acordo.

             Desconsidere o anexo, ou copie o codigo acima e cole no modulo1, substituindo o presente.

Também funcionou bem!

Mas vou ficar com a formula. A planilha original tem MUITO VBA, sei que não tem nada a ver uma coisa com a outra. Mas eu quebrei muito a cabeça fazendo VBA para envio automático de e-mail, letras maiúsculas, data e hora automática, importar exportar, não quero mais tocar nas linhas de cód.

 

Muito obrigado pela ajuda, tenho certeza que vai cair como uma luva em futuras plans e outras pessoas.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...