Necesito su ayuda para convertir un archivo de excel a txt y que la información que en excel se encuentran en columnas se guarde en un archivo txt separado por pipes en forma continua es deciar algo como esto. antonia|rosado|carballo|calle 14|san jose.
De acuerdo a tu información que me proporcionas veo que solo debe juntar cinco columnas y separarlas por pipes ¿estoy en lo correcto? Bueno pues este código hace lo que quieres solo cópialo a tu editor VBA y ejecutalo, pero antes de eso debes especificar dentro del código la ruta donde se guardará tu archivo ahí te pongo una nota indicandte la linea donde debes modificar y en negrita lo que debes modificar, yo cuando escribí el código me lo guardaba en "C:\PRUEBAS" ya tu sabrás donde lo guardas, esto es importante porque si no especificas bien la ruta te va a sacar error la macro. Y para ejecutar el código posiciónate en la primera celda que contiene la información por ejemplo si tu información esta de la columna A a la columna E debes estar posicionad en "A "en la primera fila que contenga la información, no debe haber renglones en blanco hacia abajo porque hasta ahí se va detener la macro. Este es el código Sub concatenar() Application.ScreenUpdating = False hoja = ActiveSheet.Name Sheets.Add ActiveSheet.Name = "recopilacion" Sheets(hoja).Select While ActiveCell.Value <> "" val1 = ActiveCell.Value ActiveCell.Offset(0, 1).Select val2 = ActiveCell.Value ActiveCell.Offset(0, 1).Select val3 = ActiveCell.Value ActiveCell.Offset(0, 1).Select val4 = ActiveCell.Value ActiveCell.Offset(0, 1).Select val5 = ActiveCell.Value ActiveCell.Offset(0, -4).Select Sheets("recopilacion").Select Range("A1").Select While ActiveCell.Value <> "" ActiveCell.Offset(1, 0).Select Wend fila1 = Row ActiveCell.Value = val1 & "|" & val2 & "|" & val3 & "|" & val4 & "|" & val5 Sheets(hoja).Select ActiveCell.Offset(1, 0).Select Wend Sheets("recopilacion").Select ActiveSheet.Move Range("A1").Select nbre = InputBox("Nombre del archivo") ruta = "C:\Pruebas" 'AQUI DEBES DEFINIR LA RUTA DONDE GUARDARAS TU ARCHIVO Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=ruta & "\" & nbre & ".txt", _ FileFormat:=xlText, CreateBackup:=False ActiveWorkbook.Close Application.ScreenUpdating = True MsgBox ("Archivo generado exitosamente") End Sub
Hola Antes que nada gracias por tu ayuda, copie el código como me indicaste y al ejecutarlo( lo hice con F5 espero sea correcto) me marca un error que dice : <h2>"se ha producido un error 1004 en tiempo de ejecucion erro definido por la aplicacion o el objeto"</h2> Ademas al regresar alhoja de excel los datos que tenia se han borrado. La hoja aparece en blanco. Por otra parte quería comentarte, en tu descripción hablas de solo 5 columnas que fue el ejemplo que yo te di, quisiera saber si es posible que la macro considerara todas las columnas que contengan información. En caso de no poder ser así te comento que mi archivo contiene 9 columnas. Nuevamente agradezco tu ayuda y el tiempo que me brindas. Saludos y Buen Día.
Yo probé el código y funciona perfectamente revisa bien tus datos como te digo, para empezar debes seleccionar la primera celda superior izquierda de tu tabla donde tienes los datos antes de ejecutar la macro y no debe haber filas en blanco, aquí te mando un enlace en donde explico cómo ejecutar una macro, a ver si te ayuda. http://www.todoexpertos.com/mitodoexpertos/expert/questions/view/2147575/ocultar-filas-automaticamente