Saltar al contenido

Macro Hojas Nuevas cada una con fechas de los dias de mes en curso.


Recommended Posts

publicado

Hola a todos:

Mi consulta se refiere a que he leido y buscado mucho en el foro pero no encontre ninguna respuesta certera.

necesito crear o tengo un libro nuevo desde cero sin nada adentro, en un rango de celdas introduzco con un formato que la solapa de Hoja soporte: ejemplo: 09-05-2013 ya que las barras no me las admite y no me interesa en realidad. bueno volviendo... en un rango ej: P1:P31 que serian 31 dias de algun mes o 30 de otros, que ese rango me genere 31 solapas de hojas cada una con una fecha correspondiente a todos los dias que yo ya habia precargado en el rango de celdas anterior, se entiende? es como si me hiciera el calendario completo de el mes en curso en cada solapa. es posible eso? desde ya mil gracias, no subo ejemplos ya que lo necesito hacer en libros nuevos durante todo el año.

gracias.

publicado

Gracias por responder tan pronto, la formula la he probado y no me funciono con la fecha, probe con distintos formatos de celda para ver si modificando por ejemplo: 01-05-2013.. 01-May-2013... etc etc nunca funciono, debe ser que en las funciones: Fx sale siempre con este formato? 01/05/2013. probe con caracteres sencillos ubicados en A1:A10 y funciono correctamente, tambien observe que no hay un rango definido y solo funciona si ubico las cosas en A1 se entiende la explicacion? espero que si. yo necesito fechar las solapas de las hojas del mes completo. Gracias nuevamente por su atencion.

[ATTACH]38666.vB[/ATTACH]

post-84095-145877007766_thumb.jpg

publicado

El rango esta definido como columna 1: Columns(1)

Debes aplicar el formato que prefieras, por ejemplo para d-mm-yy seria:

Sub test()
Dim r As Range
For Each r In Columns(1).SpecialCells(2)
Sheets.Add().Name = Format(r.Value, "d-mm-yy")
Next
End Sub
[/CODE]

publicado

Excelente funciona aunque ingresa las fechas de manera descendente, eso no seria problema ya que de ultima la invierto en las celdas para que las genere ascendentes, ahora te la voy a complicar un poquito mas... me gustaria copiar una plantilla o una hoja que ya tengo prediseñada en cada una de esas hojas nuevas que se estan generando con las fechas. es posible o la complique mucho. se entiende? tengo una hoja Maestra la cual quiero traspasar tal cual a cada una de las nuevas hojas generadas con la fecha.

Mil gracias por tu colaboración realmente me sos de mucha ayuda ya que en excel no tengo tanta experiencia programando, por no decir casi nada.

adjunto si puedo el archivo maestro.

REPARACIONES.rar

publicado

Para agregar las hojas al final solo hay que indicarlo:

Sub test()
Dim r As Range
For Each r In Columns(1).SpecialCells(2)
Sheets.Add(After:=Sheets(Sheets.Count)).Name = Format(r.Value, "d-mm-yy")
Next
End Sub
[/CODE]

Para la segunda parte solo copia la plantilla y renombrala, enciende la grabadora de macros, copia manulamente y generaras el codigo que despues de puublicarlo aqui mismo, te ayudaremos a mejoraralo.

publicado

Hola cui2002:

Prueba con esta modificación de la macro de Armando:

Sub test()

Range("E2:I6").Select

Selection.Copy

Dim r As Range

For Each r In Columns(1).SpecialCells(2)

Sheets.Add(After:=Sheets(Sheets.Count)).Name = Format(r.Value, "d-mm-yy")

ActiveSheet.Paste

Next

End Sub

en ella copio un rango de celdas donde se supone que esta la plantilla que quieres repetir en todas las hojas.

Andrés

publicado

Con esta ayuda me funcino perfectamente el copiado y fechado en las hoja, lo unico que no entendi es porque cuando puse como rango de copi B1:BC1 ya que en az esta el lsitado desplegabe oculto solo me copia el encabezado de las fila 1 pero puse B1:BC410 y todo salio de maravillas.

Hola cui2002:

Prueba con esta modificación de la macro de Armando:

Sub test()

Range("E2:I6").Select

Selection.Copy

Dim r As Range

For Each r In Columns(1).SpecialCells(2)

Sheets.Add(After:=Sheets(Sheets.Count)).Name = Format(r.Value, "d-mm-yy")

ActiveSheet.Paste

Next

End Sub

en ella copio un rango de celdas donde se supone que esta la plantilla que quieres repetir en todas las hojas.

Andrés

Ahora con este otro, nunca me funciono y me tiro al depurador, tampoco salio nunca el inputbox preguntandome nada.

estare haciendo algo mal? yo genero un modulo nuevo para probar, no modifico el codigo de la hoja, haciendolo asi el de pepafg me funciona pero el tuyo no Armando, tampoco los anteriores. y es una buena opcion a tner en cuenta ya ue con un input dandole la cantiad me evita tener que generar fechas en un rango. :livid:

Algo tarde pero aqui va:

Sub CopyTemplate()
For i = 1 To 5 'o InputBox("Cuantas hojas o dias")
Sheet1.Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = i & "-05-13"
Next
End Sub
[/CODE]

publicado

Hola a todos:

Esta muy bien la macro de antonio pero la limita al periodo de Mayo del 2013. Habria que añadirle variables para que fuese mas general y empezara a crear las hojas a partir del dia siguiente al momento de la activacion de la macro.

Voy a intentar modificar esos puntos, degame un poco de tiempo.

Andrés

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.