En el libro Hoja1 esta mi solicitud explicita.
SOLO quiero que me ayuden co nel punto 2º que está en Verde.
Los números 3º y 4º pertenecen al 2º tambien
Se trata de que al copiar nuevo libro este se copie en que las fechas se vean como fechas y tambien los titulos en A1 y luego en A2 el contenido (datos copiados)
Bueno, para que no tengan que descargar el archivo, pongo aquí tu pregunta:
"En Private Sub cbtCopia_Nuevo_Click(), que la fecha del ListBox, sea pegada en la hoja del nuevo libro, como fecha y no numero. Si tengo fecha 06-09-2014 que así mismo la copie y no numero. Tambien que copie ademas de los datos, los titulos a A1"
------
Ya sé Excel, pero necesito más.
Pregunto entonces, ¿porque sucede lo de la fecha en la linea 1 y no en la linea 2? como puedes darte cuenta
Cuanto a la copia
Asi fue que consegui la macro. No se como hacerlo. Talves cambiando el nombre de hoja?
Esta Claro que mi idea es pisar el boton y ya, no tener que dar formato a celdas ni cosa parecida porque si a eso vamos, creo un nuevo libro, hago un copi/pega pero no es eso que pretendo pero, si n oes posible ac{a, pues ni modo.
Talvez lo tuyo sea solo una de tantas ocpiones que hay
Gracias por responder y tu interes por la solicitud mia
Vuelvo co nalgo mas explñicito de l oque quiero agregar a la macro
La función es que esta macro copia todo el contenido del ListBox, sin que tenga que seleccionar nada, a nuevo libro SOLO 1 hoja ESTA PERFECTO para el fin que fue creado.
Quiero agregarle a esta misma macro, que copie en el nuevo libro, Hoja con el mismo ancho columnas y con el mismo título de la hoja origen.
También las fechas las copia (algunas) no como fechas si no como números. Quiero que me las copie como fechas sin tener que dar formato de celdas al nuevo libro (Hoja)
Si el nombre ya existe, me avisa y pregunta 2 veces si lo quiero reemplazar, Deberia hacerlo una sola ves
Cuanto a presentar en el nuevo libro (Hoja) #N/A no preocuapr, se el porque, por la cantidad de columnas en la propiedad del ListBox ue eta en 8 y solo son necesarias 7
Estas son las cosas que quisiera integrarle.
Dejo nuevamente libro, donde el form tien un icono de un libro, ese es el evento
Me fijo que cuando pego la fecha 3/2/2014 (3 de febrero), lo pega como 2 de marzo. Imagino qeu la notación americana de las fechas sale a relucir cuando pegas las fechas derectamente del listbox. el contenido del listbox es en definitiva un texto y Excel al pegarlo trata de interpretarlo, así qeu comprueba que esté pegando correctamente.
Sobre tu pregunta. Dos opciones, o creas una hoja en blanco que utilizas como plantilla y la copias a un nuevo libro, en vez de crear el libro en blanco.
Sheets("tuHojaModelo").Copy 'esto crea una copia de tu hoja modelo en un libro nuevo, que pasa aser el libro activo.
En el procedimiento de tu botón sería sustituir esto
Set l1 = Workbooks.Add
por algo como esto
Sheets("tuHojaModelo").Copy
Set l1 = Activeworkbook
Otra opción. copiar y pegar sólo formato. Para que copie el ancho de las columnas, tienes que seleccionarlo todo. (lo he llamado HojaOrigen y HojaDestino pero tendrás que poner lo que corresponda en tu caso)
HojaOrigen.Cells.Copy
HojaDestino.Cells.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
------
Ya sé Excel, pero necesito más.
Hola paco. gracias por aun estar tratando de dar con esta cosa.
En el libro que subi, coloca esta macro en el evento
[CODE]Private Sub cbtCopia_Nuevo_Click()
Set hc = HojaClientes 'Se establece la variable hc como la hoja origen
Set l1 = Workbooks.Add 'Se crea un nueva libro y a la vez se establece el nuevo libro en la variable l1
Set h1 = l1.ActiveSheet 'Se establece la nueva hoja del libro nuevo en la variable h1
c = lista.ColumnCount 'Cuenta la cantidad columnas del ListBox
f = lista.ListCount 'cuenta el numero de lineas del ListBox
hc.Rows(1).Copy h1.Range("A1") 'Se copia la fila 1 de la hoja origen a la nueva hoja empezando en la celda A1
hc.Columns("A:G").Copy ''Copia las columnas. Para poner el mismo ancho de columnas:
h1.Range("A1").PasteSpecial Paste:=xlFormats 'Las pega pero con formato especial sólo formatos
'Recibe el rango de celdas el contenido del listbox, pero le resta 2 columnas para evitar el error _
#N/A, una por la columna que hace falta y otra por la fecha, ya que la fecha se pasa en otro momento.
h1.Range(h1.Cells(2, 1), h1.Cells(f + 1, c - 2)) = lista.List
'Para poner el formato de fecha utilizo la siguiente instrucción para cada fecha que tienes almacenada en el listbox
For i = 0 To lista.ListCount - 1
h1.Cells(i + 2, "G") = Format(lista.List(i, 6), "mm/dd/yyyy") 'porque e ListBox es un control de Texto
Next
'Las fechas están en la columna 6 del listbox y se pasan a la columna "G"
Application.DisplayAlerts = False 'Para que solo pregunte 1 vez si quier oreemplazar el existente
With Application.FileDialog(msoFileDialogSaveAs)
.Title = "Exportar Archivo a Nuevo Excel"
.AllowMultiSelect = False
.FilterIndex = 1
If .Show Then
march = .SelectedItems(1)
Range("A2").Select 'quitar a seleccion
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[/CODE]
con la ayuda de un amigo, lo logre
La macro loque hace es crearte un nuevo libro (1 hoja) con TODOS los datos que contenga el ListBox.
Si usas el buscador y te presenta 50 sobre la busqueda echa, 50 van al nuevo libro lo cual pedes darle el nombre que desees y SIN MACROS, muy bien esto.
Ya lo de la fecha esta resuelto en esta macro, pruebala y te dire quien me la completo
me dejas con la duda ¿quién te ayudó?
------
Ya sé Excel, pero necesito más.
¿Porque la duda? jejejejjejeje
Fue un tal Dante Amor de TodoExperos
Funciona muy pero muy bien