Inicio > Microsoft Excel > karl82 > Dividir una tabla de datos en varias hojas

Dividir una tabla de datos en varias hojas

Experto:
Usuario:
Fecha: 18/07/2008
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
17/07/2008
arturovit, usuario preguntando en Microsoft Excel
Usuario
Alguien me podria ayudar con otro problemilla, lo que pasa es que quiero dividir una tabla de datos en varias hojas; es decir en la hoja1 esta la tabla con ciertos datos en la columna "A" tengo nombres, en la columna "B" Numeros (que representan los dias de atrasos de pago; generalmente es de 1 a 40 dias de atraso) y en la columna "C" cantidades. Lo que quisiera poder hacer es que excel divida los datos y los vaya pegando en diferente hojas, de la siguiente forma: Hoja2 los datos que tengan de 1 a 10 dias de atraso. Hoja3 los datos que tengan de 11 a 20 dias de atraso y Hoja 4 los datos que tengan mas de 20 dias de atraso.
Se podra hacer con una macro?
De antemano muchas gracias
17/07/2008
arturovit, experto respondiendo en Microsoft Excel
Experto
.
17/07/2008
arturovit, experto respondiendo en Microsoft Excel
Experto
'Hola, porsupuesto que se pueda hacer con una macro te mando el siguiente codigo:
'la unica condicion es q la hoja de donde proviene la informacion se llame Hoja1
'y las de la condicion 1 a 10 Hoja2, de 11 a 20 Hoja3 y de 21 a mas Hoja4, pega el
'cogido en un modulo y luego hacer correr la macro. Saludos y no olvides cerrar la pregunta.
Sub formula()
i = 1
Sheets("Hoja1").Select
Range("B2").Select
Do While ActiveCell <> Empty
valor = ActiveCell.Value
Select Case valor
Case 1 To 10
Sheets("Hoja2").Select
ActiveSheet.Range("A2").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.formula = ("=Hoja1!A" + CStr(i + 1))
ActiveCell.Offset(0, 1).Select
ActiveCell.formula = ("=Hoja1!B" + CStr(i + 1))
ActiveCell.Offset(0, 1).Select
ActiveCell.formula = ("=Hoja1!C" + CStr(i + 1))
Sheets("Hoja1").Select
Case 11 To 20
Sheets("Hoja3").Select
ActiveSheet.Range("A2").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.formula = ("=Hoja1!A" + CStr(i + 1))
ActiveCell.Offset(0, 1).Select
ActiveCell.formula = ("=Hoja1!B" + CStr(i + 1))
ActiveCell.Offset(0, 1).Select
ActiveCell.formula = ("=Hoja1!C" + CStr(i + 1))
Sheets("Hoja1").Select
Case Else
Sheets("Hoja4").Select
ActiveSheet.Range("A2").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.formula = ("=Hoja1!A" + CStr(i + 1))
ActiveCell.Offset(0, 1).Select
ActiveCell.formula = ("=Hoja1!B" + CStr(i + 1))
ActiveCell.Offset(0, 1).Select
ActiveCell.formula = ("=Hoja1!C" + CStr(i + 1))
Sheets("Hoja1").Select
End Select
ActiveCell.Offset(1, 0).Select
i = i + 1
Loop
End Sub
18/07/2008
arturovit, usuario preguntando en Microsoft Excel
Usuario
Gracias por la ayuda, era justamente lo que buscaba.
Enlaces patrocinados