Página 1 de 1

Copiar valores baseado na quantidade de itens em uma coluna.

Enviado: 08 Mar 2016 às 16:40
por Berti
Salve pessoal!

O título parece estranho, mas é bem simples.

Fiz algumas formas mas não me geraram o resultado esperado.

Preciso criar uma macro para identificar quantos itens há na coluna A e depois selecionar o range B2:K2, copiar e colar até a última linha que contém itens conforme a coluna A.

Fiz o código abaixo, mas aí tem que ficar clicando no botão para executar, e o que preciso é que execute tudo de uma vez:
Código: Selecionar todos
Sub copiar()

    Range("B2:K2").Select
    Selection.Copy
    Range("B2").Select
    Do
        If ActiveCell <> "" Then
        ActiveCell.Offset(1, 0).Select
        End If
    Loop Until ActiveCell = ""
    ActiveCell.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False

End Sub
Segue imagem para melhor entendimento.

Imagem

Agradeço a ajuda.

Re: Copiar valores baseado na quantidade de itens em uma col

Enviado: 08 Mar 2016 às 17:02
por alexandrevba
Boa tarde!!

Tente assim
Código: Selecionar todos
Sub AleVBA_1628()
Dim wsSrc As Worksheet
Dim wsDst As Worksheet
Dim Last_Row As Long

Last_Row = Range("A" & Rows.Count).End(xlUp).Row

    Set wsSrc = Worksheets("Sheet1")
    Set wsDst = Worksheets("Sheet1")
    
    wsSrc.Range("A2:A" & Last_Row).Copy
    wsDst.Range("B2").PasteSpecial xlPasteValues, Transpose:=True
    Application.CutCopyMode = False
    
End Sub
Att

Re: Copiar valores baseado na quantidade de itens em uma col

Enviado: 08 Mar 2016 às 17:26
por Berti
Não deu Alexandre. O resultado foi o abaixo:

Imagem

Ele copiou os itens da coluna A e colou na linha B2:K2.

Precisamos que os itens em B2:K2 sejam copiados conforme a quantidade de itens na Coluna A, por exemplo, se a Coluna A tem 50 registros (A2:A51), a macro vai copiar os itens em B2:K2 e copiar até a linha 51. Veja abaixo:

Imagem

Abs.

Re: Copiar valores baseado na quantidade de itens em uma col

Enviado: 09 Mar 2016 às 12:38
por alexandrevba
Boa tarde!!

Sinceramente eu ainda não entendi, eu presumi que era isso..
Código: Selecionar todos
Sub AleVBA_1628V2()
Dim wsSrc As Worksheet
Dim wsDst As Worksheet

    Set wsSrc = Worksheets("Sheet1")
    Set wsDst = Worksheets("Sheet1")
    
    wsSrc.Range("B2:K2").Copy
    wsDst.Range("A2").End(xlDown).PasteSpecial xlPasteValues, Transpose:=True

    Application.CutCopyMode = False
    
End Sub
Caso não seja, vamos aguardar mais alguém que possa lhe ajudar.


Att

Copiar valores baseado na quantidade de itens em uma coluna.

Enviado: 09 Mar 2016 às 13:39
por Berti
Obrigado mesmo assim Alexandre.

Vamos lá.

O que precisa ser feito é que os registros no range B2:K2 (que não são os mesmos da coluna A) sejam copiados para a quantidade de linhas para baixo conforme a quantidade de registros que houver na coluna A, exemplo, se na coluna A tiver 10 itens preenchidos, o range B2:K2 será copiado até B10:K10, ou, se na coluna A tiver 20 registros preenchidos, os registros do range B2:K2 serão copiados até B20:K20.

Os registros da coluna A não tem nada haver com o range B2:K2, são dados preenchidos manualmente, aí conforme vai inserindo registros na coluna A, depois é só rodar a macro para copiar o range B2:K2 ( que são outros dados inseridos manualmente ) até a linha conforme quantidade de registros na coluna A.

Espero ter esclarecido melhor... :oops:

Copiar valores baseado na quantidade de itens em uma coluna.

Enviado: 09 Mar 2016 às 13:52
por GlaucoSilva
Boa tarde Berti!

Acho que entendi o que você quer.
Dá uma olhada no anexo que estou enviando

Espero ter Ajudado.
Se a mensagem foi util Favor Clicar na mãozinha.

Copiar valores baseado na quantidade de itens em uma coluna.

Enviado: 09 Mar 2016 às 14:32
por Berti
Isso mesmo Glauco.

Muito Obrigado ;)

Abs