Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: systemita en 30 Marzo 2009, 20:52 pm



Título: generar hoja automatica en excel
Publicado por: systemita en 30 Marzo 2009, 20:52 pm
Hola, quisiera saber si se puede hacer con macros o una formula que se genere automaticamente la copia de una hoja por medio de la fecha del computador o que yo le coloque la hora y fecha en que esta se va a generar. Espero haya sido explicita y me puedan ayudar. Desde ya muchas Gracias.


Título: Re: generar hoja automatica en excel
Publicado por: Novlucker en 30 Marzo 2009, 21:05 pm
No me queda claro lo que quieres hacer  :-X

Partimos de la base de que tienes una hoja de excel, y quieres crear una nueva hoja ... esa nueva hoja es copiada? o es nueva? se va a crear automaticamente al abrir el libro y con la fecha que figura en la pc? Debes de tener una hoja por cada día?

Lo más sencillo sería que al abrir el libro se hayan creado tantas hojas como días en el mes, y si estamos a 25, entonces que hayan 25 hojas  :P

Saludos  :P


Título: Re: generar hoja automatica en excel
Publicado por: systemita en 30 Marzo 2009, 21:25 pm
Gracias.
la pc esta encendida todo el dia, y el libro tambien.Tengo una hoja con un formato x, donde x cada dia debo copiar la misma hoja con el mismo formato pero con fecha actual que figure la pc, y que algunas celdas del formato esten limpias o sin valores, es decir se genere otra copia de la hoja con el mismo formato pero con fecha diferente y la celdas que siempre se modifican esten lista para ser llenadas. Me hice entender? :-\


Título: Re: generar hoja automatica en excel
Publicado por: Novlucker en 30 Marzo 2009, 21:57 pm
Lo muevo a VB porque la respuesta son macros (y son lo más parecido)  :P

Código
  1. Sub Completardia()
  2. On Error Resume Next
  3.  
  4. Nombrehoja = Format(Now(), "ddmmm")
  5.  
  6. Sheets(Nombrehoja).Select
  7.  
  8. If Err.Number > 0 Then
  9.    Sheets(1).Copy After:=Sheets(Sheets.Count)
  10.    Sheets(Sheets.Count).Name = Nombrehoja
  11.    Sheets(Nombrehoja).Range("A1").Value = ""
  12.    'Ejemplo de una celda que sería borrada
  13.    Err.Clear
  14. Else
  15.    MsgBox "Ya existe una hoja para la fecha actual"
  16. End If
  17.  
  18. End Sub

Buenas, la macro sería algo así, espero entiendas algo de esta para poder modificarla a tu gusto  ;)

Si te manejas más o menos con estas entonces sabrás que para ejecutarlas o bien lo haces desde el editor de visual basic (integrado en el office), desde el listado de macros, desde un botón con la macro asignada, o bien lo metes en:

Código
  1. Private Sub Workbook_Open()
  2. 'Aqui el resto
  3. End Sub
Y de este modo se ejecuta en cada apertura del libro  :P

Saludos