Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por XGrosso
#25044
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:
#25053
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.
Por XGrosso
#25054
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!
#25055
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.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord