Ir ao conteúdo

Posts recomendados

Postado

Tenho uma base de produtos e dentro de cada coluna chamada nome tem um comentário, tenho ou aba onde lanço as vendas, digito o código e o procv puxa o nome do produto.

 

Como faço para que além do nome do produto ele puxe também o comentário?

 

Segue arquivo.

 

Obrigado!!

Vendas pacote.rar

Postado

@Revolucao

 

Em um módulo, cole o código abaixo:

 

Function getComment(incell) As String
   On Error Resume Next
        getComment = VBA.Replace(incell.Comment.Text, Excel.Application.UserName & ":", "")
   On Error GoTo 0
End Function

 

Em alguma célula digite a fórmula, =getComment(aqui a célula onde está o comentário)


 

  • Curtir 1
Postado

@Scofieldgyn Bom dia!!

Simples na aba Mov_venda, na coluna Cód_Produto quando eu digitar o código do produto, na coluna C= PRODUTO ele puxa o nome do produto pelo procv, mas eu gostaria que além do nome do produto ele puxasse também o comentário descrito la na aba produtos.

Postado

@Revolucao Entendi,

 

Você resolve isso com um simples PROCV, como você já possui a coluna de comentário extraído pronto na aba Cad_Prod, é só lançar um PROCV na aba Mov_venda.

 

veja o exemplo que fiz na aba Mov_venda, ai quando digitar qualquer código de produto, automaticamente vai trazer o comentário da primeira aba. Isso ajuda?

 

image.png.078b9a76d66173b67fe76bb0544fe52e.png

Postado

@Revolucao Veja se assim resolve,

 

Function ProcuraComentario(Valor As Range, Area As Range, Deslocamento As Integer) As String
    Dim Celula As Range
    
    Set Celula = Area.Columns(1).Find( _
        What:=Valor.Value, LookIn:=xlValues, LookAt:=xlWhole)
    
    If Not Celula Is Nothing Then
        Set Celula = Celula.Columns(Deslocamento)
        If Not Celula.Comment Is Nothing Then
            ProcuraComentario = Celula.Comment.Text
        End If
    End If
End Function

 

E na célula entre com o nome da fórmula, p.ex,

 

=PROCURACOMENTARIO(Tab_Vendas[@[Cód_Produto]];COD_produto;2)

  • Curtir 1
  • Amei 1
Postado

@Revolucao Para adicionar o comentário, a macro do Change fica assim,

 

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not [Tab_Vendas].ListObject.DataBodyRange Is Nothing Then
        If Application.Intersect( _
            Target, [Tab_Vendas].ListObject.ListColumns("Cód_Produto").DataBodyRange) Then
            
            Dim Comentario As String
                
            Comentario = ProcuraComentario(Target, _
                [Tab_Produto].ListObject.ListColumns("Sequencia").Range, 2)
            
            If Not Target.Offset(0, 1).Comment Is Nothing Then
                Target.Offset(0, 1).Comment.Delete
            End If
            
            If Comentario <> "" Then
                Call Target.Offset(0, 1).AddComment(Comentario)
            End If
        End If
    End If
End Sub

 

Ai também usei a função ProcuraComentario que postei no post anterior. Antes da adição do comentário a macro verifica se já existe algum na célula ao lado. Caso exista ele será substituído pelo da busca ou apenas removido caso o código não exista.

  • Curtir 1
  • Solução
Postado

@Revolucao Não é para usar a fórmula como comentei no primeiro post. Cole as macros no módulo, assim o comentário será adicionado quando digitar o código na planilha,

 

Modulo.png.36f342e963b377a82a46919827f11dec.png

  • Curtir 1
Postado

@Midori Colei o código abaixo:

Private Sub Worksheet_Change(ByVal Target As Range) If Not [Tab_Vendas].ListObject.DataBodyRange Is Nothing Then If Application.Intersect( _ Target, [Tab_Vendas].ListObject.ListColumns("Cód_Produto").DataBodyRange) Then Dim Comentario As String Comentario = ProcuraComentario(Target, _ [Tab_Produto].ListObject.ListColumns("Sequencia").Range, 2) If Not Target.Offset(0, 1).Comment Is Nothing Then Target.Offset(0, 1).Comment.Delete End If If Comentario <> "" Then Call Target.Offset(0, 1).AddComment(Comentario) End If End If End If End Sub

 

Segue arquivo

Vendas pacote.rar

Postado
2 horas atrás, Midori disse:

@Revolucao Faltou colar a outra função ProcuraComentario como demonstrado no print.
Show!! Muito obrigado pela paciência, agradeço de coração a ajuda prestada, sucesso!!

@ScofieldgynValeu Brother, abraços!!

@Midori Show!! Muito obrigado pela paciência, agradeço de coração a ajuda prestada, sucesso!!

Postado

@Revolucao A dificuldade em colocar o código no módulo correto deve ser porque falta conhecer um pouco mais os componentes do editor do VBA.

 

Veja que no print que você postou no canto esquerdo tem o explorador de projeto "Projeto - VBAProject". Lá é onde fica a hierarquia dos projetos das suas planilhas e os elementos de cada um. Entre eles estão os módulos e para editar um código em qualquer um é com clique duplo.

 

No caso da sua planilha eles estão em VBAProject (Vendas pacote.xlsm) e lá tem estas duas ramificações (ou pastas):

 

Microsoft Excel Objetos: Aí tem os módulos Workbook (EstaPastaDeTrabalho) e Sheet (Cad_Prod e Mov_Venda). Cada planilha que você cria terá um módulo associado a ela. E nesses módulos é onde devem ficar os procedimentos que são ativados por evento como o Change que postei.

 

Módulos: Aí ficam os módulos que alguns chamam de Standard e que podem ser adicionados em Inserir > Módulo.

 

Além desses também tem Class e Form.

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!