Página 1 de 1

[Ajuda] Copiar linha completa X vezes.

Enviado: 25 Jul 2017 às 15:11
por XGrosso
Boas pessoal, eu estou a construir um Excel que me copia a linha o número de vezes o valor de uma célula dessa linha. O valor de vezes que eu quero que copie é o valor que esta na coluna C de determinada linha, sendo que pretendo que esse valor seja copiado para uma folha nova.
O código que eu tenho é o seguinte:
Private Sub CommandButton1_Click()
Dim lr As Long, lr2 As Long, r As Long
lr = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
lr2 = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row
For r = lr To 2 Step -1
If Range("C" & r).Value = "1" Then
Rows(r).Copy Destination:=Sheets("Sheet2").Range("A" & lr2 + 1)
lr2 = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row
End If
If Range("C" & r).Value = "2" Then
Rows(r).Copy Destination:=Sheets("Sheet2").Range("A" & lr2 + 1)
Rows(r).Copy Destination:=Sheets("Sheet2").Range("A" & lr2 + 2)
lr2 = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row
End If
Next r
End Sub

O problema surge quando o valor dessa célula é um numero grande do género 40, pois fazer isto até 40 é muito maçador e o código vai ficar muito extenso, alguém me consegue criar um ciclo para isto??
Valeu, Abraço :geek:

Re: [Ajuda] Copiar linha completa X vezes.

Enviado: 25 Jul 2017 às 15:18
por XGrosso
Com os espaços está assim:
Imagem

Re: [Ajuda] Copiar linha completa X vezes.

Enviado: 25 Jul 2017 às 20:46
por osvaldomp
Experimente:
Código: Selecionar todos
Private Sub CommandButton1_Click()
 Dim lr As Long, r As Long
 lr = Cells(Rows.Count, "C").End(xlUp).Row
  For r = 2 To lr
   Cells(r, 1).Resize(, 10).Copy Sheets("Tubos").Cells(Rows.Count, 1).End(3)(2).Resize(Cells(r, 3), 10)
  Next r
End Sub
obs. será replicado o intervalo 'A:I' de cada linha, se quiser alterar o número de colunas copiadas altere o número 10 no código, nas 2 ocorrências.

[Ajuda] Copiar linha completa X vezes.

Enviado: 26 Jul 2017 às 04:35
por XGrosso
Eu acho que não expliquei muito bem, o que pretendo com o click no botão, estes são os dados da Sheet1:
Animal 1 | Cão | 5 | Macho
Animal 2 | Gato | 3 | Fêmea
Animal 3 | Rato | 1 | Macho

Ao clicar no botão eu quero que ele me faça o seguinte, na Sheet 2:
Animal 1 | Cão | 5 | Macho
Animal 1 | Cão | 5 | Macho
Animal 1 | Cão | 5 | Macho
Animal 1 | Cão | 5 | Macho
Animal 1 | Cão | 5 | Macho
Animal 2 | Gato | 3 | Fêmea
Animal 2 | Gato | 3 | Fêmea
Animal 2 | Gato | 3 | Fêmea
Animal 3 | Rato | 1 | Macho
A diferença é que nos meus dados o valor da terceira coluna varia de 1 até 55 e em termos de linhas são cerca de 3000.
Obrigado!

Re: [Ajuda] Copiar linha completa X vezes.

Enviado: 26 Jul 2017 às 07:53
por osvaldomp
O botão deve estar na planilha "Condutas" e a quantidade de colunas a replicar você ajusta conforme a observação do meu post anterior. O resultado vai para a planilha "Tubos", exatamente da forma como você pediu.