Ir ao conteúdo
  • Cadastre-se
Felipe Carvalho_748684

RESOLVIDO Formula - Copiar dados de célula caso tenha correspondente

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Felipe

 

Seja bem-vindo ao fórum!

 

Em vez de postar a imagem, anexe um exemplo da planilha, pois senão teremos que montar um exemplo para testar.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Felipe

 

A planilha não veio,

 

Se a tua planilha contém macros, o fórum só aceita se estiver compactada.

 

[]s

Compartilhar este post


Link para o post
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

  • Curtir 1

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×