Página 1 de 1

Copiar e Colar com Critérios

Enviado: 22 Abr 2019 às 15:27
por eloirfabio
Olá.
Estou desenvolvendo uma planilha de custos para a empresa onde trabalho, e gostaria de agilizar o trabalho o máximo possível.
A planilha funciona da seguinte maneira: A pessoa clica no salário e ao clicar no botão "Copiar salário para custos" o macro copia o valor da seleção e pula 2 células à esquerda, copiando também o nome do cargo, depois cola os calores na planilha I - CUSTOS. Com os dados da coluna C a fórmula funciona que é uma beleza. Porém, quando vou copiar os dados da coluna B a fórmula não funciona, já que ela precisa pular 2 células à esquerda para copiar o cargo. Tentei utilizar o comando On Error Resume Next, pra ele ir ao próximo comando e pular somente 1 célula à esquerda quando der erro, mas não obtive sucesso.

Re: Copiar e Colar com Critérios

Enviado: 26 Abr 2019 às 13:40
por mucascosta
Veja se lhe ajuda:
Elimina o botão,
A macro é executada ao acessas as colunas B e C

Na aba II – CARGOS E SAL.
Código: Selecionar todos
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 3 Then
    Call COPIAR
    Call COPIARCARGO1
    ElseIf Target.Column = 2 Then
    Call COPIAR
    Call COPIARCARGO2
    End If
End Sub
No Módulo1
Código: Selecionar todos
Sub COPIAR()
Selection.Copy 'copia a planilha onde se encontra a seleção do mouse
Sheets("I - CUSTOS").Activate 'ativa a planilha onde o valor será colado
Range("I5").Select 'seleciona a célula onde o valor será colado
ActiveSheet.Paste 'cola o valor (: - Código adaptado por Eloir
'Call COPIARCARGO1 'chama a próxima função
Application.CutCopyMode = xlCopy
End Sub
Código: Selecionar todos
Sub COPIARCARGO1()
Sheets("II - CARGOS E SAL.").Activate 'ativa a planilha anterior
Selection.Offset(0, -2).Copy 'seleciona 2 células à esquerda
Sheets("I - CUSTOS").Activate 'ativa a planilha onde o valor será colado
Range("C2").Select 'seleciona a célula onde o valor será colado
ActiveSheet.Paste 'cola o valor (: - Código adaptado por Eloir
Application.CutCopyMode = xlCopy
End Sub
Código: Selecionar todos
Sub COPIARCARGO2()
Sheets("II - CARGOS E SAL.").Activate 'ativa a planilha anterior
Selection.Offset(0, -1).Copy 'seleciona 1 células à esquerda
Sheets("I - CUSTOS").Activate 'ativa a planilha onde o valor será colado
Range("C2").Select 'seleciona a célula onde o valor será colado
ActiveSheet.Paste 'cola o valor (: - Código adaptado por Eloir
Application.CutCopyMode = xlCopy
End Sub