Generar listado apartir de tablas

26/07/2008 - 02:36 por tareash | Informe spam
Hola, en esta oportunidad les solicito orientaciòn sobre como puedo
armar un listado a partir de datos contenidos en tablas que aparecen
en diferentes hojas.

Adjunto un link a un archivo; el resultado buscado aparece en la hoja
"lista"

http://tareash.googlepages.com/practica.xls

Gracias por su ayuda

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
26/07/2008 - 03:59 | Informe spam
hola, 'anonimo/a' !

... como puedo armar un listado a partir de datos contenidos en tablas que aparecen en diferentes hojas...



prueba con una tabla dinamica con multiples rangos de consolidacion...
-> visita (y descarga ejemplos) -> http://www.contextures.com/xlPivot08.html

revisa estos consejos, por si necesitaras arreglar diferente tus datos de origen (con archivos de ejemplo):
-> Limitations of Multiple Consolidation Ranges
http://www.contextures.com/xlPivot0...imitations

el comando para mostrar al asistente de tablas y graficos dinamicos del (ex)menu de datos...
(que es el que te permite seleccionar multiples rangos de consolidacion)...
para el caso de la version 2007 es necesario agregarlo a la barra de acceso rapido desde...
-> (boton) office / (boton) opciones de excel / (ficha) personalizar
-> muestras los comandos disponibles en: -> todos los comandos
-> (por orden alfabetico) seleccionas 'Asistente para tablas y graficos dinamicos...(PivotTableReport)'
-> y pulsas en el boton Agregar >>

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 AnSanVal
27/07/2008 - 19:37 | Informe spam
Si lo quieres sin TD, desde la hoja en que quieres el resultado, ejecuta este código:

Sub Listado()
Dim hoja, fila, columna As Long
Application.ScreenUpdating = False
[A1].Value = "Vendedor"
[B1].Value = "Producto"
[C1].Value = "Mes"
[D1].Value = "Ventas"
[A2].Select
For hoja = 1 To 3
For fila = 2 To Sheets(hoja).Cells(65535, 1).End(xlUp).Row - 1
For columna = 2 To Sheets(hoja).Cells(1, 1).End(xlToRight).Column - 1
ActiveCell.Value = Sheets(hoja).Name
ActiveCell.Offset(, 1).Value = Sheets(hoja).Cells(fila, 1).Value
ActiveCell.Offset(, 2).Value = Sheets(hoja).Cells(1, columna).Value
ActiveCell.Offset(, 3).Value = Sheets(hoja).Cells(fila, columna)
ActiveCell.Offset(1).Select
Next columna
Next fila
Next hoja
Range("A2").CurrentRegion.Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range _
("C2"), Order2:=xlAscending, Key3:=Range("B2"), Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, _
DataOption3:=xlSortNormal
[A1].Select
Application.ScreenUpdating = True
End Sub

Saludos desde Tenerife.
Respuesta Responder a este mensaje
#3 Heriberto Martinez Roa
28/07/2008 - 03:53 | Informe spam
Nuevamente, inmensas gracias (a Héctor y a AnSanVal) por tan pronto y
efectivo aporte; de momento con el macro solucione la inquietud, ahora
estudiaré por el método recomendado por Héctor.
Heriberto Martínez

"AnSanVal" escribió en el mensaje de
noticias:uEYvL#
Si lo quieres sin TD, desde la hoja en que quieres el resultado, ejecuta
este código:

Sub Listado()
Dim hoja, fila, columna As Long
Application.ScreenUpdating = False
[A1].Value = "Vendedor"
[B1].Value = "Producto"
[C1].Value = "Mes"
[D1].Value = "Ventas"
[A2].Select
For hoja = 1 To 3
For fila = 2 To Sheets(hoja).Cells(65535, 1).End(xlUp).Row - 1
For columna = 2 To Sheets(hoja).Cells(1, 1).End(xlToRight).Column - 1
ActiveCell.Value = Sheets(hoja).Name
ActiveCell.Offset(, 1).Value = Sheets(hoja).Cells(fila, 1).Value
ActiveCell.Offset(, 2).Value = Sheets(hoja).Cells(1, columna).Value
ActiveCell.Offset(, 3).Value = Sheets(hoja).Cells(fila, columna)
ActiveCell.Offset(1).Select
Next columna
Next fila
Next hoja
Range("A2").CurrentRegion.Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range _
("C2"), Order2:=xlAscending, Key3:=Range("B2"),
Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom, DataOption1:=xlSortNormal,
DataOption2:=xlSortNormal, _
DataOption3:=xlSortNormal
[A1].Select
Application.ScreenUpdating = True
End Sub

Saludos desde Tenerife.

Respuesta Responder a este mensaje
#4 Héctor Miguel
28/07/2008 - 04:07 | Informe spam
hola, chicos !

... de momento con el macro solucione la inquietud ...



(creo que) por "estetica visual" seria preferible mantener el orden de los meses NO por alfabeto -?-
por lo que podrias (manual o por macros) ordenar primero los listados por articulo y luego las hojas
asi solo correrias la macro SIN (des)ordenar el resultado :))

saludos,
hector.
Respuesta Responder a este mensaje
#5 AnSanVal
28/07/2008 - 19:20 | Informe spam
Hola Ector.

(creo que) por "estetica visual" seria preferible mantener el orden de los meses NO por alfabeto -?-







Seguramente si (Enero, Febrero, Marzo etc...) pero lo he intentado dejar tal como él lo requería en su ejemplo
(http://tareash.googlepages.com/practica.xls):

Vendedor Productos Mes Ventas
Diana Carvajal Estufas Abril 55.485.171
Diana Carvajal Lavadoras Abril 71.180.580
Diana Carvajal Licuadoras Abril 61.230.469
Diana Carvajal Minicomponentes Abril 71.614.583
Diana Carvajal Neveras Abril 553.269.063
Diana Carvajal Televisores Abril 11.076.173
Diana Carvajal Estufas Enero 27.117.116
Diana Carvajal Lavadoras Enero 72.177.593
Diana Carvajal Licuadoras Enero 29.925.000
Diana Carvajal Minicomponentes Enero 35.000.000
Diana Carvajal Neveras Enero 48.285.300
Diana Carvajal Televisores Enero 11.233.320
Diana Carvajal Estufas Febrero 29.054.053
Diana Carvajal Lavadoras Febrero 50.730.537
Diana Carvajal Licuadoras Febrero 32.062.500
Diana Carvajal Minicomponentes Febrero 37.500.000
Diana Carvajal Neveras Febrero 51.734.250
Diana Carvajal Televisores Febrero 9.435.989
Diana Carvajal Estufas Junio 79.602.305
Diana Carvajal Lavadoras Junio 43.945.855
Diana Carvajal Licuadoras Junio 87.844.849
Diana Carvajal Minicomponentes Junio 102.742.512
Diana Carvajal Neveras Junio 793.752.490
Diana Carvajal Televisores Junio 9.767.211

. . .

Saludos: Antonio.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida