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

Macro copia e cola se duas células iguais


piasserpa

Pergunta

Bom dia,

Preciso de uma macro para copiar valores de uma célula para outras células quando outras 2 células forem iguais, passo a explicar o que preciso:

Na folha com o nome Gráfico_SDemand_22, quando o valor da célula D3 for igual ao valor da célula A3 da folha com o nome Targets, copia o valor da célula B27 da folha Gráfico_SDemand_22 e cola na célula D6 da folha Gráfico_SDemand_22.

Na folha com o nome Gráfico_SDemand_22, quando o valor da célula E3 for igual ao valor da célula A3 da folha com o nome Targets, copia o valor da célula B27 da folha Gráfico_SDemand_22 e cola na célula E6 da folha Gráfico_SDemand_22.

 e continua a fazer o mesmo até à coluna O inclusive.

Podem ajudar?

Grato antecipadamente

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 1

Bom dia @piasserpa

Fiz uma simulação do código que estava precisando, olha se é dessa maneira.

Public Sub cPiasserpa()
Dim sh(1 To 2) As Worksheet

Set sh(1) = Sheets("Gráfico_SDemand_22")
Set sh(2) = Sheets("Targets")

If sh(1).Range("D3").Value = sh(2).Range("A3").Value Then
    sh(1).Range("D6").Value = sh(1).Range("B27").Value
End If
End Sub

Link: Planilha no Onedrive

Link para o comentário
Compartilhar em outros sites

  • 0

Ele funciona. Eu baixei a sua planilha do OneDrive para o meu PC pois as macros não funcionam na nuvem, com a exceção da Planilha do Google, mas aí você precisa saber como funciona o Java.

Para testar a sua macro, eu fui em Desenvolvedor > Macros > Opções, e lá atribui a tecla [CTRL]+[d] para a sua macro.

Eu devo muito ao Excel, foi usando o gravador de macro é que eu aprendi um pouco de Visual Basic.

Hoje, os meus códigos são mais legíveis, olha só:

Sub Teste()
Dim A, B, C, D As Range
Set A = Sheets("Targets").Range("A1")
Set B = Sheets("Targets").Range("B1")
Set C = Sheets("Targets").Range("C1")
Set D = Sheets("Targets").Range("D1")
If A = B Then D = C
End Sub

 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 22/05/2022 em 13:05, Alyson Ronnan Martins disse:

Bom dia @piasserpa

Fiz uma simulação do código que estava precisando, olha se é dessa maneira.

Public Sub cPiasserpa()
Dim sh(1 To 2) As Worksheet

Set sh(1) = Sheets("Gráfico_SDemand_22")
Set sh(2) = Sheets("Targets")

If sh(1).Range("D3").Value = sh(2).Range("A3").Value Then
    sh(1).Range("D6").Value = sh(1).Range("B27").Value
End If
End Sub

Link: Planilha no Onedrive

Muito obrigado pelo interesse em ajudar, estive a testar e não funciona.

Encontrei esta forma que resolveu o meu problema.

 

Sub ReplicaDados()

Dim i As Long
  
  For i = 4 To 15
   If Sheets("Gráfico_SDemand_22").Cells(3, i) = Sheets("Targets").[A3] And Sheets("Targets").[A3] <> "" Then
    Sheets("Gráfico_SDemand_22").Cells(6, i) = Sheets("Gráfico_SDemand_22").[B27]
   End If
  Next i

End Sub

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,5k
×
×
  • Criar Novo...