Como transferir dados específicos de uma planilha para outra por meio do VBA no Microsoft Excel

Índice

Neste artigo, usaremos o evento de mudança da planilha para transferir dados de uma planilha para outra, dependendo de uma determinada condição.

Os dados brutos consistem em detalhes do cliente, que incluem nome, endereço, cidade, região, país e número de telefone.

Neste artigo, queremos transferir dados daqueles clientes que não são elegíveis para uma oferta particular. A última coluna contém “Não” como valor, se um cliente não for elegível para uma oferta particular. Queremos copiar esses clientes 'não elegíveis' para a planilha “NotEligibleData”.

Explicação do código

Se Target.Column = 7 Then

O código acima é usado para restringir o evento de alteração da planilha para executar apenas quando o valor em 7º coluna é alterada.

Planilhas ("NotEligibleData"). Intervalo ("A2: I600"). ClearContents

O código acima é usado para excluir o valor do intervalo A2: I600

Planilhas ("Principal"). Células (i, "G"). WholeRow.Copy Destination: = Sheets ("NotEligibleData"). Range ("A" & Rows.Count) .End (xlUp) .Offset (1)

O código acima é usado para copiar clientes não elegíveis para a planilha "NotEligibleData".

Siga abaixo para o código

 Private Sub Worksheet_Change (ByVal Target As Range) 'Declarando variáveis ​​Dim i, Lastrow As Long' Executar o código se o valor na sétima coluna for alterado If Target.Column = 7 Then 'Obtendo o número da linha da última célula Lastrow = Sheets ("Principal" ) .Range ("A" & Rows.Count) .End (xlUp) .Row 'Excluindo quaisquer dados anteriores das planilhas "NotEligibleData" ("NotEligibleData"). Range ("A2: I600"). ClearContents' Looping a partir do décimo linha para a última linha For i = 10 To Lastrow 'Se o valor na coluna G da linha for "Not", então copie a linha para a planilha de destino If Sheets ("Main"). Cells (i, "G"). Value = " Não "Then Sheets (" Main "). Células (i," G "). WholeRow.Copy Destination: = Sheets (" NotEligibleData "). Range (" A "& Rows.Count) .End (xlUp) .Offset ( 1) End If Next i End If Range ("A1"). Selecione End Sub 

Se você gostou deste blog, compartilhe com seus amigos no Facebook. Além disso, você pode nos seguir no Twitter e no Facebook.

Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar nosso trabalho e torná-lo melhor para você. Escreva para nós no site de e-mail

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave