|
'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
|