Como distribuir en varias hojas la información de una hoja General del mismo libro

Buenas tardes, mi problema es el siguiente, en un libro de excel tengo varias hojas, la primera se llama General y las otras son los meses del año, en la hoja General ingreso datos con fechas mensuales distintas de los días del mes (B8), y quisiera de su ayuda para poder distribuir esta información a las hojas mensuales correspondientes de mismo libro tomando en cuenta la fecha, (es decir, si tengo varias fechas del mismo mes que todas esas fechas las colo que en la hoja del mes correspondiente).

1 Respuesta

Respuesta

Si el nombre de las hojas mensuales coincide con el contenido de la col A esta macro te servirá. Sino seguramente podrás modificarla o de lo contrario aclara un poco más mostrando imágenes de las pestañas de tu libro.

Sub separaHojas()
'x Elsamatilde
'recorre col A y según el mes es la hoja de destino
'evalua posible error de hoja no creada
On Error Resume Next
For i = 8 To Range("A" & Rows.Count).End(xlUp).Row
    hojax = Range("A" & i)
    Range("A" & i).EntireRow.Copy Destination:=Sheets(hojax).Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1)
Next i
End Sub

Sdos y no olvides valorar la respuesta si el tema queda resuelto. (opciones: excelente o buena)

Hola Elsa Matilde.

La macro si se ejecuta pero no distribuye la info, creo que algo me falto o no se que paso, tengo hojas con los meses del año (coinciden con los nombres de la col A) y lo que quisiera es que al ingresar yo datos en la Hoja GENERAL esta informacion se distribuya en el mes correspondiente (ejemplo, 03-01-2019 se valla a la hoja de enero la info de "fecha, concepto, referencia y cantidad), ya sea por el dato del mes de la columna A o por las Fechas de la columna B.

Saludos.

Hay 2 modos de pasar la info: a medida que vas completando la fila o una vez que tenés toda la hoja General lista, se ejecuta la macro para TODAs las filas.

La macro que te envié hace esto último (lo más recomendable) por eso recorre la col A:

Sub separaHojas()
'x Elsamatilde
'recorre col A 

Si lo necesitas a medida que completes alguna fila debes cambiarla por esta otra, donde solo se pasará la fila activa.

La macro se coloca en un módulo. Necesitarás presionar un botón, atajo de teclado o llamarla desde menú Desarrollador, Macros. Encontrarás explicaciones de cómo Ejecutar macros en sección Macros de mi sitio.

Sub separaHojas()
'x Elsamatilde
'copia la celda activa a la hoja indicada en col A
'evalua posible error de hoja no creada
On Error Resume Next
hojax = Range("A" & ActiveCell.Row)
Range("A" & ActiveCell.Row).EntireRow.Copy Destination:=Sheets(hojax).Range("A" & Sheets(hojax).Range("A" & Rows.Count).End(xlUp).Row + 1)
End Sub

Podrías agregarle una consulta para confirmar el pase.... para asegurarte que estás en la fila correcta. Quedaría así:

Sub separaHojas()
'x Elsamatilde
'copia la celda activa a la hoja indicada en col A
sino = MsgBox("¿Confirmas copiar la fila " & ActiveCell.Row & " a su hoja correspondiente?", vbYesNo, "CONFIRMAR")
If sino <> vbYes Then Exit Sub
'evalua posible error de hoja no creada
On Error Resume Next
hojax = Range("A" & ActiveCell.Row)
Range("A" & ActiveCell.Row).EntireRow.Copy Destination:=Sheets(hojax).Range("A" & Sheets(hojax).Range("A" & Rows.Count).End(xlUp).Row + 1)
MsgBox "Fila copiada"
End Sub

Sdos!

Hola

Gracias por la ayuda, ya logre qejecutar la macro, solo que en cada hoja de cada mes, me distribuye la información en toda la hoja y no en secuencia de filas y columnas..

Saludos.

No entiendo eso que comentas que no va en secuencia...

La fila se copia completa desde la col A y se coloca a partir de la primer fila libre en col A de cada hoja con la instrucción 'Destination'

Si no es eso lo que necesitas ajusta el rango. O indicame qué col copiar y a partir de qué col pegar para que te pase la instrucción apropiada.

Sdos!

Así como dejaste imagen de la hoja General, deja otra con alguna hoja mensual para observar cómo tenés organizadas las columnas y qué datos estás pasando.

Sdos!

Leyendo tu historial vero que valoras poco y que en una de tus consultas te quejaste porque nadie te respondió. Época en que yo no estuve en el foro por lo que no me doy por aludida.

Aún así intenté seguir tu consulta... consulta que ahora abandonaste. No estamos sentados frente a tu monitor... solo tratamos de interpretar las notas que dejan.

Puedo enviarte mi ejemplo para que veas que corre perfectamente, por eso te solicité más muestras de tu libro. Y no recibo respuestas.

Evidentemente así no serás bien atendido aquí.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas