Necesito saber de que manera en excel puedo crear un libro con todas las fechas del año pero sin escribirlas manualmente, esto por que tengo que ingresar unos datos del año 2008 a la fecha, imagínense lo que me demoraría en escribir un libro con todas las pestañas del 2008 a la fecha, amigoa ayúdenme por favor expertos, espero su repuesta amigos
1 Respuesta
Respuesta de Nelson Felipe Serrano
1
1
Nelson Felipe Serrano, Ingeniero civil con habilidades en el manejo de las funciones y...
Aunque tu pregunta es ambigua (no deja del todo claro que lo que necesitas) voy a suponer que necesitas crear hojas nuevas y que cada una tenga como nombre una fecha, desde 2008 hasta la fecha; si ese es el caso, aquí anexo un código que puede echarte una mano: **************************************************************** Sub GenerarHojas() ''genera una hoja para cada uno de los registros de la columna actual ''Creada por FSerrano en 110518 'desactiva la actualización en pantalla para ejecutar el codigo más eficientemente Application.ScreenUpdating = False 'captura la posición inicial para volver a ella al finalizar el proceso comienzo = ActiveCell.Address hojainicial = ActiveSheet.Name 'identifica la celda final para efectuar el ciclo hasta esa celda ultima = ActiveCell.SpecialCells(xlLastCell).Row 'ciclo que crea una hoja nueva para cada registro de la columna actual y nombra la hoja 'con el valor de la celda actual, si la celda actual esta vacia pasa a la siguiente (avanza hacia abajo) While ActiveCell.Row <= ultima If ActiveCell <> "" Then 'Captura el valor de la celda y remueve las barras ("/") ya que no son aceptadas en el nombre de las hojas nombre = Application.WorksheetFunction.Substitute(ActiveCell.Value, "/", "") 'inserta una nueva hoja despues de la ultima ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count) 'renombra la hoja con el valor del registro actual Sheets(ActiveSheet.Index).Name = nombre 'vuelve a la hoja de datos que contiene los registros Sheets(hojainicial).Activate End If ActiveCell.Offset(1, 0).Activate Wend 'vuelve al punto de partida Sheets(hojainicial).Range(comienzo).Activate 'Habilita nuevamente la actualización de la pantalla Application.ScreenUpdating = True End Sub ******************************************************************** Para que el código ande tienes que tener una lista con los nombres que le vas a poner a las hojas (en tu caso las fechas), ubicarte en una celda de dicha celda y correr la macro, el código generara tantas hojas como registros haya entre la celda desde que lanzas la macro y la ultima celda que contenga datos de dicha columna.