Saltar al contenido

Duplicación Hojas


pistacho

Recommended Posts

Buen día a toda la comunidad del foro,

En esta ocasión les escribo ya que debo crear aproximadamente 100 hojas dentro de un mismo libro, cada hoja debe ser igual, únicamente cambiando una celda de acuerdo a una base predefinida anteriormente (Hoja: "Listado" celdas C3:C102). En cada una de estas celdas existen textos de la siguiente manera: Hoja1, Hoja2, Hoja3 ... Hoja 100.

C3: Hoja1

C4: Hoja2

...

C102: Hoja100

Tengo una Hoja: "Base" en la cual busco que se duplique tal y como esta, lo único que debe cambiar es la celda C5 por el valor en C3 de la hoja "Listado" y la hoja debe llamarse "H1" según está formulado en la celda C1. Posteriormente que duplique la Hoja1 y en la celda C5 quede el valor en la celda C3 y la nueva hoja debe llamarse "H2". Asi hasta crear las 100 hojas en donde cada hoja tiene en la celda C5 y el nombre el valor de cada celda (C3:C102) de la hoja "Listado".

El archivo lo pueden encontrar en: https://drive.google.com/open?id=1eBdZbkCJ5T5QePVX6cXjk1VqEWVo_1wi

Quedo muy atento si necesitan algo adicional.

De antemano muchas gracias.

Enlace a comentario
Compartir con otras webs

Invitado Cacho R
Hace 1 hora, pistacho dijo:

... debo crear aproximadamente 100 hojas ...

Hola! pistacho

Hacer lo que pides no ofrece mayores complicaciones...
Sin embargo debo decirte que ese libro -a priori- es candidato al premio (para nada deseado): Libro Mastodonte Mayor por sus cualidades de inmanejable y/o inoperable (Jajjjajajja :lol:).

Por lo que -y antes que "te metas" en semejante lío- pregunto: ¿No encontraste una mejor manera de manejar tu info que no sea "ésta"?... (¿querrías comentar que es lo que buscas hacer con "esto" para explorar alternativas?).

Saludos, Cacho R.

Enlace a comentario
Compartir con otras webs

@Cacho R buen día,

Claro que si. El objetivo de esta macro es poder manejar en una hoja independiente el presupuesto y ejecución de diferentes sedes de un supermercado, en donde cada hoja representa un punto en especifico, asociado a una ciudad y país.

Entiendo que un libro de cien hojas no puede ser muy atractivo pero es necesario.

Si necesitas algo adicional quedo atento.

Enlace a comentario
Compartir con otras webs

Hace 1 hora, pistacho dijo:

@Cacho R buen día,

Claro que si. El objetivo de esta macro es poder manejar en una hoja independiente el presupuesto y ejecución de diferentes sedes de un supermercado, en donde cada hoja representa un punto en especifico, asociado a una ciudad y país.

Entiendo que un libro de cien hojas no puede ser muy atractivo pero es necesario.

Si necesitas algo adicional quedo atento.

El problema no es crear las hojas, el problema va a ser después controlar esas hojas... por mi experiencia es mejor tener los datos en una sola hoja, ahí puedes tener la información de 1000 tiendas incluso, y de esta sacas reportes en una hoja auxiliar de cada tienda, de la información que quieras. Pero si es un proyecto real no te aconsejo que lo hagas en Excel, para ese tamaño de sedes y el tamaño de la información va a ser grande.... bien pueden pagar un Sistema especializado en Gestor de Base de Datos. SGBD.

Saludos.

Enlace a comentario
Compartir con otras webs

Invitado Cacho R
Hace 2 horas, pistacho dijo:

El objetivo de esta macro es poder manejar en una hoja independiente el presupuesto y ejecución de diferentes sedes de un supermercado, en donde cada hoja representa un punto en especifico, asociado a una ciudad y país.

- Ok... Entiendo que quieras manejar "esto" mediante Excel.

- Pero -ahora- razonemos juntos: tu siguiente solicitud al Foro será pedir dos macros: una que te "arme" un índice en la primera hoja del libro (y ya llegamos a 101 hojas, jajjjajaja) de modo que haciendo click en un enlace "saltes" a la hoja/sucursal asociada y -ya- estando en esa hoja la otra macro que al hacer click en un botón te haga volver al índice de la primera hoja, ¿No es cierto?...

- En tal caso mi propuesta es: ¿Y si en lugar de saltar "de hoja en hoja" tienes la info de cada sucursal en libros distintos?... Para una macro es lo mismo "saltar" a una hoja del mismo libro que "saltar" a la única hoja de otro libro.

- De ese modo "ganas" en todos los rubros: eficiencia, manejo discreto y si un libro "se degrada" (por la causa que sea) sólo tendrás problemas con esa sucursal y no con todas las sucursales de toda tu empresa.

¿Entiendes la idea?...
Saludos, Cacho R.
.

Enlace a comentario
Compartir con otras webs

Hace 4 minutos , Cacho R dijo:

- De ese modo "ganas" en todos los rubros: eficiencia, manejo discreto y si un libro "se degrada" (por la causa que sea) sólo tendrás problemas con esa sucursal y no con todas las sucursales de toda tu empresa.

Entonces tendra 101 libros por lo menos... Jajaja, como dices tu Cacho R si llegando a 30 Libros yo ya me pongo nervioso... Jajaja

Saludos.

Enlace a comentario
Compartir con otras webs

Invitado Cacho R
Hace 1 minuto , Leopoldo Blancas dijo:

si llegando a 30 Libros yo ya me pongo nervioso... Jajaja

¡Cierto (solo pensarlo me entran "escalofríos")!...

Pero: ¡Qué le vas a hacer!... ¡Tienen un centenar de sucursales y -aparentemente- administrar las cosas mediante una BBDD no es una opción!

:rolleyes:

Enlace a comentario
Compartir con otras webs

@Cacho R gracias. entiendo el funcionamiento del archivo. siguiendo tu recomendación lo que podría hacer es crear máximo 5 libros, y cada uno de estos con 20 hojas diferentes, de las cuales debería duplicar las hojas 20 veces y con un solo clic.

 

Logro visualizar en tu archivo que efectivamente crea un libro con el nombre deseado, lo que para el caso que busco sería que este fuera el nombre de la Hoja.

 

Gracias!

 

Enlace a comentario
Compartir con otras webs

No hagas caso a cantos de sirena, la cantidad de hojas no es lo importante, lo importante es la cantidad de datos que contiene.

En cuanto al tema de una posible corrupción del archivo, basta hacer una copia de seguridad regularmente.

Con la hoja Listado activada ejecuta esta macro.

Sub CrearHojas(): On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each celda In Range("G3:G102")
   Sheets(celda.Value).Delete
   Sheets("Base").Copy After:=Sheets(Sheets.Count)
   With ActiveSheet
      .[C2] = celda.Offset(, -3).Value
      .[C3] = celda.Offset(, -2).Value
      .[C4] = celda.Offset(, -1).Value
      .[C5] = celda.Value
      .Name = celda.Value
   End With
Next
End Sub

Mañana te subo una utilidad para navegar por las hojas.

Enlace a comentario
Compartir con otras webs

@Antoni Disculpame, estaba validando en la macro y efectivamente me crea las hojas, y el nombre es el que debería ser.

Sin embargo, en las hojas creadas la celda C5 tiene el nombre H1, H2, H3.... etc .... en esta celda especificamente debe quedar "Hoja 1" - "Hoja 2" y asi hasta llegar a "Hoja 100" esto debido a las formulas con BuscarV que se encuentran atadas a esta celda C5.

De resto esta perfecta.

Enlace a comentario
Compartir con otras webs

@Antoni te dejo el Link con el archivo y la macro creada por ti para ser un poco más claro con mi solicitud.

https://drive.google.com/open?id=1LZDGAuyAh-Q3P9OqbtgBdoZUW4jk1SkP

Si necesitas algo adicional quedo muy atento.

@Leopoldo Blancas gracias por tu aporte y satisface lo solicitado, sin embargo puede que a veces sea H1 y otras veces H1,P1,C1;R1, es por esto que la de Antoni aplica un poco mejor porque se basa en el listado.

 

Enlace a comentario
Compartir con otras webs

Invitado Cacho R
Hace 6 horas, pistacho dijo:

debe quedar "Hoja 1" - "Hoja 2" y asi hasta llegar a "Hoja 100"

Y... ¡Ése es el peligro de "conformarse" con lo que pediste en lugar de lo que necesitás!...

Así que: ¡Te espero en unas semanas/meses de vuelta por aquí para que te solucionemos este desaguisado!...

Saludos para todos (en especial a mi Amigo Antoni), y hasta la próxima. :rolleyes:

Enlace a comentario
Compartir con otras webs

Invitado Cacho R
Hace 4 minutos , pistacho dijo:

Muchas gracias a todos:)

¡Por el contrario!... ¡Gracias a vos por "tolerar" las mutuas chanzas que nos "jugamos" Antoni y quien -aquí- te saluda!

Enlace a comentario
Compartir con otras webs

  • Silvia bloqueó este tema

Archivado

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

  • 96 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Buenas noches quisiera hacer esta formula auto incremental    =SI(INDIRECTO("'Casos de Prueba'!I1")="Resultados Ciclo 1"; SI(CONTAR.SI(INDIRECTO("'Casos de Prueba'!I:I"); "OK")=0; 0; CONTAR.SI(INDIRECTO("'Casos de Prueba'!I:I"); "OK")); 0)      para que cada vez que copiase y pegase la celda con la formula  se incrementara la letra en este caso la I pasara a J ,como el numero perteneciente a Resultados Ciclo pasando en este caso del 1 al 2.   Tengo también esta formula =CONCATENAR("CP";TEXTO(MAX((SI((ESNUMERO(HALLAR("CP";A$1:A1)))*(A$1:A1<>"");VALOR(EXTRAE(A$1:A1;3;3));0))+1);"000")&" - "&B2) quisiera que no tuviera los 3 ceros si no que fuera por ejemplo CP1 y se fuera incrementando. Gracias un saludo.
    • Con el diseño así como lo tiene en su libro, una fórmula de BUSCARV con COINCIDIR debería ser de utilidad =C5*BUSCARV($C$1,Tabla1[#Todo],COINCIDIR($D5,Tabla1[#Encabezados],0)) Es con lo que participaría en su consulta. Lo que resta es definir que hacer si no encuentra la OT porque así como esta le devolvería error en ese caso, o si tiene condiciones que haya podido omitir también le afectarían el resultado.
    • He cambiado mi macro a este: Sub repetir() Set a = Sheets(ActiveSheet.Name) uf = a.Range("C" & Rows.Count).End(xlUp).Row 'ultima fila con datos ActiveCell.Select ActiveCell.Offset(1, 0).Select   'Application.OnTime Now + TimeValue("00:00:10"), "repetir", , True End If End Sub   Lo que no se es como detenerlo al llegar a la ultima fila con datos de la columna C. Muchas gracias
    • Buenas tardes a todos. Tengo un problema que preciso de vuestra ayuda.  Tengo que controlar los gastos de la oficina que trabajo y he de repartir unos gastos a % según una OT y unos tipos de gastos. Envío un archivo adjunto. Lo que necesito es que lo que aparece en la columna en amarillo lo haga automáticamente, teniendo en cuenta los datos de la tabla a la derecha. Por ejemplo, el primer gasto tiene una cuota de 1477 euros y teniendo en cuenta que es un gasto de tipo Común y que la OT es la 12810234, le corresponde un gasto de 605,57 euros ya que según la tabla de la derecha su % a imputar es de un 41%. ¿alguien me puede ayudar con la formula? He de añadir muchas más líneas y más hojas con el resto de OT y en el futuro cambiar más datos, así que necesito automatizarlo con una formula Excel. Gracias. Control de gastos.xlsx
    • Hola buenas tardes: Por favor me pueden ayudar a realizar lo siguiente. ejecutar una macro después de un tiempo, que recorra una columna a partir de la celda activa hacia abajo. Es una lista extensa, que filtro desde la columna B. y solo me muestra las filas que me interesan. ejemplo: Si mi celda activa es la C23 ejecutar la macro y baje una celda y repite la macro después de 20 segundos y lo vuelve hacer(Simpre bajando una celda), y que este se detenga hasta la ultima fila que este visible en el filtro. Ya que puedo tener muchos datos mas.   Gracias   Prueba filtro y avance.xlsm
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.