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