Ir ao conteúdo
  • Cadastre-se
Antonio C N Santos

Excel-macro move

Recommended Posts

Instale o código abaixo em um módulo comum, assim:
1. copie o código daqui
2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor >> Inserir >> Módulo
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código:
6. tecle 'Alt+F8' >> selecione a macro correspondente >> Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 > Opções).


 

Sub ReplicaDados()
 Dim n As Range
 Range("F12:G" & Cells(Rows.Count, 6).End(3).Row) = ""
 For Each n In Range("B3:B" & Range("B3").End(4).Row)
  Cells(n.Value, 6).Resize(, 2).Value = n.Offset(, 1).Resize(, 2).Value
 Next n
End Sub

obs. embora a sua descrição passe a ideia de remoção da tabela original (Excel-macro move; Preciso movimentar células) optei por reproduzi-la mas não apagá-la.

Compartilhar este post


Link para o post
Compartilhar em outros sites
19 horas atrás, osvaldomp disse:

Instale o código abaixo em um módulo comum, assim:
1. copie o código daqui
2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor >> Inserir >> Módulo
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código:
6. tecle 'Alt+F8' >> selecione a macro correspondente >> Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 > Opções).


 


Sub ReplicaDados()
 Dim n As Range
 Range("F12:G" & Cells(Rows.Count, 6).End(3).Row) = ""
 For Each n In Range("B3:B" & Range("B3").End(4).Row)
  Cells(n.Value, 6).Resize(, 2).Value = n.Offset(, 1).Resize(, 2).Value
 Next n
End Sub

obs. embora a sua descrição passe a ideia de remoção da tabela original (Excel-macro move; Preciso movimentar células) optei por reproduzi-la mas não apagá-la.

Osvaldomp,

 

Valeu e muito.

É exatamente isso que precisava.

 

Mais uma vez obrigado.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
59 minutos atrás, Antonio CNSantos disse:

Osvaldomp,

 

Valeu e muito.

É exatamente isso que precisava.

 

Mais uma vez obrigado.

 

Osvaldo,

 

Na hora de aplicar na minha planilha surgiu uma duvida.

O que significa o 6 e o 3 na expressão Cells(Rows.Count, 6).End(3).Row)

e o 4 em Range("B3:B" & Range("B3").End(4).Row)

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cells(Rows.Count, 6).End(3).Row)

O comando acima busca a última linha com conteúdo na coluna 6 (coluna 'F'). Pode haver células vazias na tabela nessa coluna.

 

Range("B3:B" & Range("B3").End(4).Row)

O comando acima busca a última linha com conteúdo na coluna 'B'. Não deve haver células vazias na tabela nessa coluna.

 

Se você tiver dificuldade disponibilize uma amostra com estrutura   E X A T A M E N T E   I G U A L    à sua planilha original.

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

×