Copiar desde ListBox a nuevo libro con TODO formato origen

Este código

Private Sub cbtCopia_Nuevo_Click()
'Por.Dante Amor
    Set l1 = Workbooks.Add
    Set h1 = l1.ActiveSheet
    c = lista.ColumnCount
    f = lista.ListCount
    h1.Range(h1.Cells(1, 1), h1.Cells(f, c)) = lista.List
    With Application.FileDialog(msoFileDialogSaveAs)
        .Title = "Exportar Archivo a Nuevo Excel"
        .AllowMultiSelect = False
        .FilterIndex = 1
        If .Show Then
            march = .SelectedItems(1)
            h1.SaveAs Filename:=march, _
            FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        End If
    End With
    MsgBox "Nuevo Libro Creado"
    Unload Me
End Sub

copia todo el contenido del ListBox, a nuevo libro de SOLO 1 hoja ESTA PERFECTO para el fin que fue creado.

Quisiera tenerlo además, que copia con el mismo ancho columnas y titulo de la hoja origen o al menos co nel ancho del texto.

Las fechas, tampoco las copia como fechas, las copia como números.

Estas son las cosas que quisiera integrale.

Si necesario dejo enlace al libro o lo envío vía mail.

El el caso que sea el amigo DAM a resolverme esto, ya tiene un libro con el, el cual en el formulario, esta un icono con imagen de un libro, ese es e lboton del evento.

Gracias

1 respuesta

Respuesta
1

Te anexo la macro con las siguientes modificaciones:

1.- Nueva hoja con el mismo ancho de columnas.

2.- El mismo título de la hoja origen.

3.- Arreglar el formato de fechas, para eso tengo que pasar fecha por fecha, ya que, por ejemplo, la fecha dice 2/mar y la pone como 3/feb.

4. Ya no pone el error #N/A

5. Solamente pregunta una vez si el libro ya existe.

Private Sub cbtCopia_Nuevo_Click()
'Por.Dante Amor
    Set hc = Sheets("Clientes")
    Set l1 = Workbooks.Add
    Set h1 = l1.ActiveSheet
    '
    c = lista.ColumnCount
    f = lista.ListCount
    hc.Rows(1).Copy h1.Range("A1")
    hc.Columns("A:G").Copy
    h1.Range("A1").PasteSpecial Paste:=xlFormats
    h1.Range(h1.Cells(2, 1), h1.Cells(f + 1, c - 2)) = lista.List
    For i = 0 To lista.ListCount - 1
        h1.Cells(i + 2, "G") = Format(lista.List(i, 6), "mm/dd/yyyy")
    Next
    '
    Application.DisplayAlerts = False
    With Application.FileDialog(msoFileDialogSaveAs)
        .Title = "Exportar Archivo a Nuevo Excel"
        .AllowMultiSelect = False
        .FilterIndex = 1
        If .Show Then
            march = .SelectedItems(1)
            h1.SaveAs Filename:=march, _
            FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        End If
    End With
    l1.Close 'Cierra el nuevo libro
    MsgBox "Nuevo Libro Creado"
    Unload Me
End Sub

Saludos.Dante Amor

Lo del #N/A yo sabia el porque, se trata de la cantidad de columnas asignadas al ListBox que esta (estaba) en 8 y si coloco solo las 7 que contiene la hoja, ya no coloca #N/A.

Por las fechas, no se porque so por

Lo del #N/A si quieres va de regalo, pero ya lo corregí.

Lo de las fechas es un tema, ya que las fechas son almacenadas en el idioma original de excel, el inglés, con formato mm/dd/yyyy; entonces cuando las cargas en un textbox o un listbox, las fechas son pasadas a texto y cuando las regresas a la celda la tienes que formatear como fecha. Eso también lo corregí.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas