Crear pestañas con cada cliente dentro de una planilla

21/12/2009 - 17:46 por Guillermo Lapettina | Informe spam
Estimados, estoy utilizando la versión 2007 y necestio crear la siguiente
planilla:

Fecha Nº Remito Cliente
Total
21/12/2009 0000-00000001 Juan Perez $ 1.500
21/12/2009 0000-00000002 Juan Gonzalez $ 1.000

Ahora bien, lo que necesito es que con este rango de datos se creen una
pestaña para cada cliente y se copien las filas que le corresponden.

Saludos desde Río Negro, Argentina.
 

Leer las respuestas

#1 Héctor Miguel
22/12/2009 - 01:03 | Informe spam
hola, Guillermo !

Estimados, estoy utilizando la versión 2007 y necestio crear la siguiente planilla:
Fecha Nº Remito Cliente Total
21/12/2009 0000-00000001 Juan Perez $ 1.500
21/12/2009 0000-00000002 Juan Gonzalez $ 1.000
... necesito... que con este rango de datos se creen una pestaña para cada cliente y se copien las filas que le corresponden...



(probablemente) podrias adaptar la siguiente propuesta a una consulta "similar" a la tuya ?

copia / pega de la consulta y propuesta ==
hola, Eugenio !

estoy suponiendo que la tabla esta en la "hoja1" dentro de las columnas A, B y C (minimo en la fila 2)
y que tienes disponibles/libres a partir de la columna D (el codigo usa las columnas E y G para "lo suyo")

copia/pega las siguientes instrucciones en un modulo de codigo estandar... y
si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Sub Hoja_x_Depto()
Application.ScreenUpdating = False
Dim Celda As Range
With Worksheets("hoja1").Range("a2").CurrentRegion
.Parent.Range("e1,g1") = .Cells(1)
.Resize(, 1).AdvancedFilter _
Action:=xlFilterCopy, CopyToRange:=.Parent.Range("g1"), Unique:=True
.Parent.Range("g1").Sort _
Key1:=.Parent.Range("g2"), Order1:=xlAscending, Header:=True
With .Parent.Range("g1").CurrentRegion
For Each Celda In .Offset(1).Resize(.Rows.Count - 1)
.Parent.Range("e2") = Celda
With Worksheets.Add(After:=Worksheets(Worksheets.Count))
.Name = Celda
End With
.Parent.Range("a2").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, CriteriaRange:=.Parent.Range("e1:e2"), _
CopyToRange:=Range("a1:c1")
Next
End With
.Parent.Columns("e:g").Clear
Debug.Print .Parent.UsedRange.Address
End With
End Sub

__ OP __
Tengo una tabla Excel de la siguiente manera:

Depto Nombre Años
==> Fin Juan 12
Fin Carla 22
Fin Arturo 50
Mar Carlos 10
Mar Marco 40
Pla Ana 50
Pla Luis 35

Y requiero convertir esta hoja en varias de forma que tenga tantas hojas como Depto
(en este ejemplo 3 hojas, Fin, Mar y Pla), es decir que me parta mi tabla en varias tablas en cada hoja.

El resultado debería ser 3 hojas llamadas, Fin, Mar y Pla y cada una de ellos con los registros correspondientes:

Por ejemplo tendría una hoja con el nombre FIN y los registros

Depto Nombre Años
==> Fin Juan 12
Fin Carla 22
Fin Arturo 50

Otra llamada Mar con:

Depto Nombre Años
==> Mar Carlos 10
Mar Marco 40

Preferiblemente las hojas debería guardar el formato de la tabla original...

Preguntas similares