dividir y copiar parte de una lista a hojas nuevas

10/01/2007 - 01:26 por pbarria | Informe spam
Hola grupo
como puedo copiar parte de una lista a una hoja nueva dividiendo por x
cantidad la lista
Cantidad a dividir la lista:3 (variable)
debo juntar los Id
Formula para contar registros sin repetir:
=SUMAPRODUCTO((A2:A50<>"")/CONTAR.SI(A2:A5000;A2:A50&""))
resultado: 7 funciona perfecto:

Lista
ID DATO
01 XX
02 CD
03 CC
04 DF
01 FG
01 DF
01 AA
05 DD
06 FF
07 XXC

deseo separar los datos por ID ejemplo para este caso:
cantidad a dividir la lista: 3 (variable puesto en una celda D1)
cantidad registros sin repetir: 7 (variable con
formula.=SUMAPRODUCTO((A2:A5000<>"")/CONTAR.SI(A2:A5000;A2:A5000&""))
en celda D2)

cantidad de registros a copiar: (D2 "7" / D1 "3")= 2 (celda D3)

copiar los 2 primeros registros a una hoja nueva llamada Lista1
luego copiar los registros del registro 3 al 4 llamarla Lista2
luego copiar los registros 5,6,7 por ser que sobro uno unirlo al final
a la hoja Lista3

voy en la mitad de la solucion.
lo primero que hay que hacer es ordenar la lista, despues sacar la
cantidad de registros sin repetir
pero como recorro la lista? y luego la copio por secciones definidas
por la cantidad a dividir.
 

Leer las respuestas

#1 Héctor Miguel
12/01/2007 - 05:28 | Informe spam
hola, ! -?-

la siguiente propuesta contiene los siguientes 'supuestos' [a falta de mayores 'detalles'] :))
1) 'asume' que la hoja 'base' se llama 'hoja1'
2) 'asume' que del resultado en la celda 'D3' solo se toma la parte entera [ya que pudiera ser fraccionaria]
3) NO contempla el 'agregado' de un tercer elemento en un grupo de 2 [por las razones del punto anterior]
es decir, si en tu ejemplo resultan 2 codigos por hoja -> "cantidad de registros a copiar: (D2 "7" / D1 "3")= 2 (celda D3)"
que 'tratamiento' debiera darse a otro 'supuesto' +/- del tipo: -> (D2 "24" / D1 "5")= 4 (celda D3) ???
o sea, si en lugar de 7 / 3 = 2 donde 'sobra' 1... fueran 24 / 5 = 4 donde 'sobrarian' 4... que 'hacemos' ???

bueno... ya comentaras algunos detalles pendientes [si los hubiera, claro] :))
saludos,
hector.

== en un modulo de codigo 'general' =Sub Lista_hojas()
Application.ScreenUpdating = False
Dim Fila As Integer, Reg As Integer, Sig As Byte, Nueva As Boolean
With Worksheets("hoja1")
For Fila = 2 To .Range("a65536").End(xlUp).Row
If Reg = 0 Then Reg = 1: Sig = Sig + 1: Nueva = True
If Nueva Then Worksheets.Add After:=Worksheets(Worksheets.Count): _
ActiveSheet.Name = "Lista" & Sig: _
.Range("a1:b1").Copy Range("a1:b1"): Nueva = False
If Application.CountIf(.Range("a2:a" & Fila), .Range("a" & Fila)) = 1 Then _
.Range("a" & Fila).Resize(, 2).Copy Range("a" & Reg + 1): Reg = Reg + 1
If Reg > Int(.Range("d3")) Then Reg = 0
Next
.Select
End With
End Sub

__ la consulta original __
como puedo copiar parte de una lista a una hoja nueva dividiendo por xcantidad la lista
Cantidad a dividir la lista:3 (variable) debo juntar los Id Formula para contar registros sin repetir:
=SUMAPRODUCTO((A2:A50<>"")/CONTAR.SI(A2:A5000;A2:A50&"")) resultado: 7 funciona perfecto:
Lista
ID DATO
01 XX
02 CD
03 CC
04 DF
01 FG
01 DF
01 AA
05 DD
06 FF
07 XXC
deseo separar los datos por ID ejemplo para este caso:
cantidad a dividir la lista: 3 (variable puesto en una celda D1)
cantidad registros sin repetir: 7 (variable con formula... en celda D2)
cantidad de registros a copiar: (D2 "7" / D1 "3")= 2 (celda D3)
copiar los 2 primeros registros a una hoja nueva llamada Lista1
luego copiar los registros del registro 3 al 4 llamarla Lista2
luego copiar los registros 5,6,7 por ser que sobro uno unirlo al finala la hoja Lista3
voy en la mitad de la solucion.
lo primero que hay que hacer es ordenar la lista, despues sacar lacantidad de registros sin repetir
pero como recorro la lista? y luego la copio por secciones definidaspor la cantidad a dividir.

Preguntas similares