Ir ao conteúdo
  • Cadastre-se

Excel Preciso de uma macro para copiar e colar mas que funciona em várias linhas


Ir à solução Resolvido por Visitante,

Posts recomendados

 Olá!

 

 Estou tentando montar uma macro que copie um intervalo de células (B1:G4), e insira esse mesmo intervalo no mesmo local, deslocando a seleção para a direita. Por fim quero apagar o que se encontra em (D1:G4).

 O problema é que preciso que essa macro seja expansível, pois a tabela encontrada em (B1:G4) tem varias copias como em (B6:G9), (B11:G14), (B16:G19)... (B996:G1000) e preciso que a macro corresponda a cada intervalo desses individualmente, e se possível que tenha um botão para aciona la (Como os pequenos botões vermelhos contidos na planilha em anexo).

 É algo parecido com a macro abaixo, porém essa só funciona em (B1:G4):

 

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("B1:G4").Select
    Selection.Copy
    Selection.Insert Shift:=xlToRight
    Range("D1:G4").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("B1:C1").Select
End Sub

 

Desde já agradeço!

 

 

Expandir.xlsx

Link para o comentário
Compartilhar em outros sites

Uma ideia:

1. selecione as colunas B:G / Copiar (Ctrl+c)

2. selecione H1 / Colar (Ctrl+v)

3. selecione as colunas D:G / aperte Delete

 

Se essa for uma tarefa repetitiva você poderá gravar uma macro.

 

obs. você não explicou sobre o quadro existente em N1:S4

 

dica - não mescle células, além de desnecessárias e inúteis elas podem provocar erros em fórmulas e em macros

 

Link para o comentário
Compartilhar em outros sites

@osvaldomp Então, na verdade essa planilha será utilizada por varias pessoas durante o dia  e nela não pode conter erros, por isso quero inserir uma macro, para que o comando seja automatizado. Resumindo, se fosse para fazer utilizando os comandos básicos do excel, eu precisaria:

 

1) Selecionar B1:G4

2) Ctrl + C

3) Botão direito do mouse sobre as células já selecionadas> Inserir células copiadas... > Deslocar células para direita

4) Selecionar D1:G4

5) Apertar o botão delete.

 

Essa serie de comandos funcionaria para "Café da estrada (Francisco)", apenas para ele, e as vezes irei precisar desses mesmos comandos para "Molas Pesão (Rafael)", sendo assim, utilizando os comandos básicos eu precisaria apenas seguir o passo a passo acima, substituindo B1:G4 e D1:G4 por B6:G9 e D6:G9, e a mesma coisa para "Poliana e Willian", utilizando "B10:G14" e "D10:G14" e assim por diante... Se fosse apenas eu usando a planilha, não teria o menor problema em fazer isso manualmente, mas como já disse, não será apenas eu.

 

Sobre o quadro existente em N1:S4, ele está lá apenas como exemplo. Na verdade o funcionamento é o seguinte: Toda vez que entro em contato com "Café da Estrada (Francisco)" (por exemplo) irei fazer o procedimento já explicado, e preencho em D1:G4 os dados referentes ao contato. Sendo assim, sempre a primeira tabela será referente ao último contato.

 

Sobre usar células mescladas, fiz, pois ficou mais organizado do que apenas aumentar o tamanho das colunas, mas não teria problema em modificar caso seja necessário.

Link para o comentário
Compartilhar em outros sites

  • Solução
1 hora atrás, JigokuMaster disse:

Essa serie de comandos funcionaria para "Café da estrada (Francisco)", apenas para ele, e as vezes irei precisar desses mesmos comandos para "Molas Pesão (Rafael)", ...

Ok, acho que agora entendi. Você quer escolher um bloco de dados e fazer a operação somente com o bloco escolhido, é isso? Se sim, seguem duas opções abaixo.

 

Sobre o quadro existente em N1:S4, ele está lá apenas como exemplo.

Esse quadro é resultado da primeira operação com o bloco B1:G4, e o quadro H1:M4 é o resultado da segunda operação com o mesmo bloco, é isso?

 

Sobre usar células mescladas, fiz, pois ficou mais organizado do que apenas aumentar o tamanho das colunas,

Hummm ... aí já entramos no campo da avaliação pessoal, pra mim "mais bem organizado" será sempre sem células mescladas ... 😋

 

... mas não teria problema em modificar caso seja necessário.

Os códigos abaixo funcionarão apesar das células mescladas.

 

A diferença entre os códigos abaixo está basicamente na forma de dispará-los. Foi o que me ocorreu. Se você tiver outra ideia ... ✍️

 

Para executar o primeiro deles basta selecionar as células da coluna A correspondentes ao bloco a ser processado. Exemplo: para processar o bloco B1:G4 selecione A1:A4 (mescladas) e rode o código.

Nesta opção, devido à distribuição dos blocos na planilha, me parece que o atalho de teclado seria a forma mais prática de disparar o código. Para atribuir um atalho ~~~> Alt+F8 / selecione ReplicaDadosViaSeleção / Opções

 

Já o segundo código será disparado pelas figuras (elipses) existentes na coluna A da planilha.

Exemplo: para processar o bloco B1:G4 clique na elipse localizada em A1 para disparar o código.

Nesta opção será preciso atribuir o código ReplicaDadosViaElipse a TODAS as elipses existentes na planilha.

Para atribuir em grupo: mantenha Shift pressionada enquanto seleciona as elipses com o mouse, selecione quantas desejar, em seguida clique com o direito sobre uma das selecionadas / Atribuir macro ...

 

Sub ReplicaDadosViaSeleção()
 If ActiveCell.Column > 1 Then Exit Sub
 With Selection
  .Offset(, 1).Resize(4, 6).Copy
  .Offset(, 7).Insert Shift:=xlToRight
  .Offset(, 3).Resize(4, 4).Value = ""
 End With
End Sub
Sub ReplicaDadosViaElipse()
 Dim r As String
  r = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address(0, 0)
   With Range(r)
    .Offset(, 1).Resize(4, 6).Copy
    .Offset(, 7).Insert Shift:=xlToRight
    .Offset(, 3).Resize(4, 4).Value = ""
   End With
End Sub

obs. não há conflito ou incompatibilidade entre os dois códigos, por isso ambos podem ser instalados em um módulo comum e podem ser executados ora um ora outro, sem problemas

Link para o comentário
Compartilhar em outros sites

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