Macro de copiar datos de una a nuevas hojas

Macro de copiar y pegar datos de 6 tipos rangos de celdas (A1:b3) asi si sucesivamente de una hoja llamada "datos" y pegar en nueva hojas "hoja 2","hoja 3","hoja 3", "hoja 4","hoja 5","hoja 6" asi hasta llega una valor de 400 hojas

1 respuesta

Respuesta
1

Para hacer la macro necesitaré algo más de información:

- Si las hojas ya están creadas o hay que ir creándolas y dandole algún nombre.

- Si se copian los 6 rangos en todas... en el mismo orden en que se encuentran (es decir copia fiel)

- Si los rangos tienen fórmulas o no, en ese caso qué hacer con ellas (¿solo valores o mantenerlas? )

El tema de copiar y pegar tiene muchos aspectos a contemplar, tantos que motivaron que publique una guía completa con macros para este proceso... de ahí que no es tan sencillo resolverlo de una.

Quedo atenta a tus aclaraciones.

Hola Elsa Matilde

en una hoja DATOS son solo valores se encuentra:

los rangos de estas tienen que irse copiando en la hoja A (hoja nueva) copiando como valor manteniendo el formato y valores.

la hoja nueva llamada A: 

la hoja nueva llamada B:

la hoja nueva llamada C:

como se puede generar el macro, ya que tengo un libro mas de 400 Items necesito realizar este proceso

Entra al Editor de macros (presionando juntas las teclas ALT y F11).

Inserta un módulo y copia allí esta macro:

Sub separa_en_Hojas()
'x Elsamatilde
'recorre la col A de hoja DATOS, a partir de fila 2
Application.ScreenUpdating = False
Sheets("DATOS").Select
Range("A2").Select
'repite el proceso hasta encontrar celda vacía en col A
While ActiveCell <> ""
nbrehoja = ActiveCell.Value
'guardo la fila x si necesito mostrar en mensaje de error
filaReg = ActiveCell.Row
Range("A" & ActiveCell.Row & ":C" & ActiveCell.Row).Copy
'crea hoja, pega los datos
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Paste
'asigna nombre a la hoja nueva
On Error GoTo errorHoja
ActiveSheet.Name = nbrehoja
On Error GoTo 0
sigo:
'vuelve a la hoja DATOS
Sheets("DATOS").Select
'pasa a la fila sgte y repite el bucle
ActiveCell.Offset(1, 0).Select
Wend
Application.CutCopyMode = False
MsgBox "Fin del pase a nuevas hojas.", , "FIN DEL PROCESO"
Exit Sub
errorHoja:
MsgBox "No se pudo dar nombre a la hoja de la fila " & filaReg & ". Nombrala manualmente al finalizar. El proceso continua con el resto de las hojas.", , "ERROR"
GoTo sigo
End Sub

Para ejecutarla podés buscarla desde la ficha Macros o con un botón o con un atajo de teclado.... este tema lo dejé explicado en la sección Macros de mi sitio.

Si por alguna razón no se puede asignar el nombre a la hoja (dato duplicado o texto no apto para nombre de hoja) te aparecerá un mensaje indicando en qué fila se encuentra el registro fallado y seguirá con el resto hasta llegar al final de la columna A.

Sdos y no olvides valorar y finalizar la consulta si queda el tema resuelto.

Elsa

ya lo voy a a ejecutar el macro cualquier inquietud te la hago saber Elsa y dar una valoración 

Muy bien, solo no te la olvides ;)

Sdos!

La pregunta no admite más respuestas

Más respuestas relacionadas