Como puedo seelccionar determinadas columnas en un Textbox para copiarlas en otra hoja..

Private Sub UserForm_Initialize()
Sheets("Kabel").Activate
ListBox1.ColumnWidths = "30,80;140;110;65;65;45;40;65;65;40;40;65;65;65;65" 'Column Widths Of Listbox
ListBox1.ColumnCount = 95 'Column Count Of Listbox
ListBox1.List = Sheets("Kabel").Range("A1:cq" & Sheets("Kabel").Cells(Rows.Count, 1).End(xlUp).Row).Value

With lblDone
.Top = lblRemain.Top + 1
.Left = lblRemain.Left + 1
.Height = lblRemain.Height - 2
.Width = 0
End With
lblPct.Visible = False
OptionButton1.Value = True
End Sub

Tengo ese listbox, pero es muy grande y necesito selcionar determinadas columnas para copiarlas 13 columnas seria posible o con otro Listbox

1 respuesta

Respuesta
1

Te anexo el código para copiar las columnas

Private Sub UserForm_Initialize()
    '
    Set h1 = Sheets("Kabel")
    Set h2 = Sheets("temp")
    h2.Cells.Clear
    cols = Array("A", "C", "E", "F", "G", "R")
    total_cols = UBound(cols) + 1
    For c = LBound(cols) To UBound(cols)
        h1.Columns(cols(c)).Copy h2.Columns(c + 1)
    Next
    h2.Cells.EntireColumn.AutoFit
    For i = 1 To total_cols
        ancho = ancho & Int(h2.Cells(1, i).Width + 3) & ";"
    Next
    uf = h2.Range("A" & Rows.Count).End(xlUp).Row
    rango = h2.Range("A2", h2.Cells(uf, total_cols)).Address
    ListBox1.ColumnWidths = ancho
    ListBox1.ColumnCount = total_cols  'Column Count Of Listbox
    ListBox1.ColumnHeads = True
    ListBox1.RowSource = h2.Name & "!" & rango
    '
    With lblDone
        .Top = lblRemain.Top + 1
        .Left = lblRemain.Left + 1
        .Height = lblRemain.Height - 2
        .Width = 0
    End With
    lblPct.Visible = False
    OptionButton1.Value = True
End Sub

Crea una hoja llamada "temp" para copiar las columnas.

Pon las columnas que quieras copiar en el arreglo:

cols = Array("A", "C", "E", "F", "G", "R")


Sal u dos

¡Gracias! Genie

Gracias 

Eusebio

Debo borrar  mi userform  initialize y colocar zu  codigo? 

Eusebio 

Sí. También debes crear una hoja y le pones por nombre "temp"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas