Generar varios archivos a partir de uno

Hola, tengo un archivo con datos transacciones de clientes (varios) y la idea es generar un archivo xls para cada uno con todas sus transacciones. Te agradeceré si puedes ayudarme.

1 Respuesta

Respuesta
1
O mándamelo a [email protected] comentándome qué quieres lograr.
En cualquiera de los casos, creo que la mejor solución es una macro para que la corras cada vez que necesites hacerlo.
El archivo tiene 4 columnas
columna A = fecha
columna B = cod cliente
columna C = nº transc.
columna D = importe
Cada cliente realiza de 1 a n transacciones y la idea es que se genere un archivo xls cada vez que el cod cliente cambie (la tabla está ordenada por cod cliente), entonces si las primeras 10 filas son del cliente 7896-9 entonces que tome esas 10 filas y cree un archivo 7896-9.xls y así sucesivamente con el resto de clientes. Un cliente puede tener 1 o más transacciones. Ojalá me puedas ayudar.
Sub Macro1()
'
' Macro1 Macro
' Macro grabada el 03/03/2003 por Eduardo Marañón
'
'
ChDir "C:\Documents and Settings\emc.VENTAS2\Escritorio"
Range("B2").Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Selection.End(xlDown).Select
CLIENTE = ActiveCell.Value
While ActiveCell.Row > 1
FINAL = ActiveCell.Row + 1
While ActiveCell.Offset(-1, 0).Value = CLIENTE
ActiveCell.Offset(-1, 0).Select
Wend
INICIO = ActiveCell.Row - 1
Sheets("Hoja1").Copy
Sheets("Hoja1").Name = CLIENTE
Range("B" & FINAL).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Delete
Range("B2:B" & INICIO).Select
Selection.EntireRow.Delete
Range("A1").Select
ActiveWorkbook.SaveAs Filename:=CLIENTE, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
ActiveWindow.Close
Range("B" & INICIO).Select
CLIENTE = ActiveCell.Value
Wend
End Sub
El único problema es que el último archivo que crea que corresponde al ultimo cliente no toma lo que está en la fila a y tampoco lo de la fila b, es decí, que si tiene 20 datos copia 19, es con el único que ocurre.
Mándame el archivo a [email protected] para ver en qué falla y te lo corrijo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas