Macro VBA - Copiar linhas de uma determinada coluna.
Enviado: 17 Ago 2020 às 19:57
Estou desenvolvendo uma macro a partir do Corel Draw... Eu sei que aqui é fórum de Excel, mais está relacionado.
A ideia da macro é contar as colunas de uma certa área que eu tenha selecionado, e para cada coluna que tiver selecionado ele me adiciona um item na ListBox. E todas as linha da coluna (dentro da região selecionada) ele copia os valores e cola em um TextBox.
A primeira parte (para cada coluna na região selecionada, adiciona um novo item no ListBox) eu consegui fazer.
O problema está em copiar as as linhas da coluna e colar no Listbox.
Ao invés da ação só copiar a partir da área seleciona, somente a coluna (i), ele está começando a partir do A1.
Segue o código.
Desde já agradeço, se alguém conseguir me ajudar fico grato.
Anexei uma imagem para explicar melhor, oque eu não conseguir dizer.

A ideia da macro é contar as colunas de uma certa área que eu tenha selecionado, e para cada coluna que tiver selecionado ele me adiciona um item na ListBox. E todas as linha da coluna (dentro da região selecionada) ele copia os valores e cola em um TextBox.
A primeira parte (para cada coluna na região selecionada, adiciona um novo item no ListBox) eu consegui fazer.
O problema está em copiar as as linhas da coluna e colar no Listbox.
Ao invés da ação só copiar a partir da área seleciona, somente a coluna (i), ele está começando a partir do A1.
Segue o código.
Código: Selecionar todos
O TextBox só exibe as coisas que foram colado quando o item da ListBox estava ativado. Private Sub CommandButton3_Click()
Dim Exl As excel.Application, Wg As Workbook, Pg As Worksheet, R As Range
Dim Mf As Variant, lastColumn As Long, lastRow As Long, nLastCol As String, i As Long
Dim ind As Integer
Set Exl = GetObject(, "Excel.Application"): Exl.Visible = True
Set Wg = Exl.ActiveWorkbook
Set Pg = Wg.ActiveSheet: Set R = Pg.Application.Selection
'Cont as colunas
lastColumn = R.columns.Count
'Conta as linhas
lastRow = R.Rows.Count
'Para cada coluna ele add listbox
For i = 1 To lastColumn
'Alterações do listbox
Me.ListBox1.AddItem i
Me.ListBox1.ListIndex = i
ind = orgLists.Count
Me.ListBox1.Column(1, ind) = "NÃO"
'''''''''Copia as linhas da coluna (i)
nLastCol = Split(R.Cells(, i).Address, "$")(1)
Mf = Pg.Range("A1:" & nLastCol & lastRow).Copy
Me.TextBox1.Paste
Next i
'Ultima modificação da ListBox
Me.ListBox1.RemoveItem "1"
Me.ListBox1.ListIndex = 0
End Sub
Desde já agradeço, se alguém conseguir me ajudar fico grato.

Anexei uma imagem para explicar melhor, oque eu não conseguir dizer.
