Eres el mejor, gracias a tu video me di cuenta de un pequeñisimo error que tenia en una macro anterior me faltaba solo una letra pero si no veo tu video ni me doy cuenta 😂
Excelente video, muchas gracias, está muy bien explicado, me sirvió mucho para facilitar procesos de generación de archivos y cargas masivas en mi trabajo. Saludos !!
Hola amigo, buen tutoría, una pregunta, concatene un par de campos para obtener un detalle, pero el archivo plano, pero se me mueve las lineas de un lado para otro, tendras alguna forma de limitar el espacio en que pueda crecer cada campo?
Gran ayuda con este video, tienes un suscriptor más, un duda, cómo hacer para que dentro del mismo código, el archivo creado se grabe en un tipo de condificación personalizada, ej. UTF8, UTF16, ANSI, etc... Estarémos agaradecidos por este tip, saludos!!!
buen video me funciono bien en windows pero para mac me sale el error de librería filesystemobject habla otra forma de generar el txt sin utilizar filesystemobject.
Hola!! Primero de todo felicitarte por el tutorial, muy bien explicado y muy util. A ver si me puedes ayudar porque me devuelve el error 52 cuando llega a esta parte del código: set tstxtArchivo=fso.createtextfile(rutaarchivo,true). Muchas gracias
Hola consulta.... sabrás como hacer la delimitación pero respetando el tamaño del campo? ejemplo que el campo nombre tenga máximo 50 caracteres y si se sobrepasa, se corte y el write continue con el siguiente dato?
hola muchas gracias, podrías explicarme por favor como puedo hacer para que ignore las celdas en blanco? sucede que cuando genera el txt lo que hace es rellenar los espacios de las celdas en blanco con el delimitador. de ante mano muchas gracias
Saludos. Cuando estoy termino todo y ejecuto me sale este mensaje "Se ha producido el error "91" en tiempo de ejecución: variable de objeto o bloque With no establecido. Me podrian ayudar a encontrar a que se debe este error?
@@maihuire11 con "tsTxtArchivo.WriteLine strCelda" y/o "tsTxtArchivo.WriteLine Right(strCelda, Len(strCelda) - 1)" por mas que se haga correr salta de amarillo esa parte
Funciona muy bien, solo que siempre me genera una linea al final en blanco, como puedo hacer para evitar que se genere sin tener que ingresar al archivo txt y borrar.
Hola como estas?, Tenes un video en lo que hagas lo contrario? Es decir de txt a Excel. Necesito crear un macro en la que busque un archivo txt en un carpeta y lo pase a una planilla de excel legible. Lo puedo hacer desde: Datos -> Nueva consulta -> Desde un archivo -> Desde un archivo CSV. Lo que necesito es saber como grabar la macro para que hago lo mismo de forma automatica. Saludos gracias de ante mano!
Les paso un tip, si desean delimitar los campos con tabuladores pueden usar (vbTab) en lugar de StrDelim, esto implica borrar la declaración y usar directamente (vbTab)
Hola consulta.... sabrás como hacer la delimitación pero respetando el tamaño del campo? ejemplo que el campo nombre tenga máximo 50 caracteres y si se sobrepasa, se corte y el write continue con el siguiente dato?
Hola, gracias por el video, tengo una pregunta. Se puede realizar una sola macro para que convierta varios archivos, es decir, si tengo varios archivos iguales, pero con diferentes datos, debo hacer la macro para cada archivo?
@@maihuire11 en donde se la coloco, el archivo a convertir empieza en la fila 7 y son 11 registros y tienes 126 columnas , te agradesco tu colaboracion a este dilema. Sub exportarTxt() Dim fso As FileSystemObject Dim tstxtarchivo As Scripting.TextStream Dim wsNOMINAE As Worksheet Dim nombreArchivo, rutaarchivo As String Dim nFilas, ncolumnas As Integer Dim i, j As Integer Dim strcelda, strDelim As String Set wsNOMINAE = ThisWorkbook.Worksheets("NOMINAE") nombreArchivo = "Nomina Electronica.csv" rutaarchivo = ThisWorkbook.Path & "\" & nombreArchivo strDelim = "," Set fso = New FileSystemObject Set tstxtarchivo = fso.CreateTextFile(rutaarchivo, True) nFilas = wsNOMINAE.Range("A" & Rows.Count).End(xlUp).Row ncolumnas = wsNOMINAE.Cells(1, Columns.Count).End(xlToLeft).Column
'i = filas 'j = columnas
For i = 7 To nFilas strcelda = "" For j = 1 To ncolumnas strcelda = strcelda & strDelim & wsNOMINAE.Cells(i, j).Text Next j tstxtarchivo.WriteLine Right(strcelda, Len(strcelda) - 1)
Next i tstxtarchivo.Close MsgBox " Archivo de texto Generado", vbInformation, "txt" End Sub
hola amigo, gracias por compartir tu archivo, me esta saliendo error tsTxtArchivo.WriteLine rigth(strCelda, Len(strCelda) - 1) me sale error de complicaion , no se ha definido sub o funtion favor si me puedes ayudar gracias
Hola. Hice el mismo paso, pero me dice Error de compilación. No se ha definido el tipo definido por el usuario. Antemano muchas gracias por el video y agradezco me ayudes con el error.
Hola, en ese caso tienes que concatenar las columnas que deseas con un separador de columnas solo usarias el for de filas y no de columnas no usarias el for, x ejemplo: En la variable str pondrías el sigueinte código: for i=1 to n filas str = wshoja.cells(i,1).value & "|" & wshoja.cells(i,2).value & "|" & wshoja.cells(i,3).value next i y asi puedes colocar mas columnas en la variable str.
Buenas, muy buen video. He seguido los pasos y em da un error 52, la referencia de Micrososft Scriptin Runtime está con el check y aún asi me sale un error 52 en tiempo de ejecución: Nombre o Numero de archivo incorrecto. Sabrías decirme por donde esta el errro? Te copio mi macro: Sub ExportarCSV() Dim fso As FileSystemObject Dim tsCsvArchivo As Scripting.TextStream Dim wsProducto As Worksheet Dim NombreArchivo, RutaArchivo As String Set wsProducto = ThisWorkbook.Worksheets("Interes") NombreArchivo = "Datos001.csv" RutaArchivo = ThisWorkbook.Path & "\" & NombreArchivo MsgBox RutaArchivo Set fso = New FileSystemObject Set tsCsvArchivo = fso.CreateTextFile(RutaArchivo, True) End Sub
Hola TutorialesLAB. Buen video, pero tengo una consulta, ¿Cómo seria para exportar a mas de un txt es decir crear un txt cada 15 filas del Excel y siendo que la ultima fila es variable, es decir puede concluir en la fila 50, 60 o mas?
Hola de manera general te puedo decir que deberias utilizar el bucle for. Te doy un ejemplo generico. For i=2 to 300 Step 15 'Aqui colocar codigo de exportar txt next i En el ejemplo anterior tomo como ejemplo que los datos comienzan en la fila 2 y termina en la fila 300 y donde dice Step 15, quiere decir el bucle se ejecutara de 15 en 15 registros.
@@maihuire11 Hola , logré crear el bucle, pero como puedo incluir que el encabezado o título (fila1), siempre acompañe los 15 renglones de información?
@@maihuire11 si ya vi cuál es el tema al momento de guardar el archivo en una ubicación de red tarda demasiado o sale error Contrario si guardo en una ubicación de mi equipo es muy rápido , no he encontrado como hacer el guardado más rápido O guardar en el equipo y después copiar el archivo a la ruta de red
@@maihuire11 Buenas, me refiero que al generar el txt en lugar de estar separado (concatenado) cada dato de una celda por " | " o tabulación, esté definido con un ancho fijo para cada celda (columna) . Ejemplo : si la celda A1 es numérica y tiene dos caracteres y quiero que el ancho fijo en el txt sea de 15 caracteres, que al generarlo me rellene los caracteres que faltan con espacio o cualquier otro signo que yo indique. Así con todas las columnas tanto numéricas como de texto, a las cuales yo pueda indicarle que ancho fijo quiero en el txt, y los caracteres que me falten me los rellene, por ejemplo como he dicho antes, con espacio. GRACIAS y un saludo.
@@jacastamp Ok, entiendo tu punto. En ese caso el codigo cambiaria. Puedo darte una pista de como realizar el codigo. Debes tener una variable por cada columna donde almacenes el ancho de cada una y al momento de escribir en el txt debes hacer el código para que cuando tenga menos de el ancho indicado lo aumente con algun caracter x ejemplo espacios. Sub CopletarTexto() Dim str As String Dim Ancho As Integer Ancho = 6 ' Ancho de la columna str = "hola" 'Texto de la columna textoNuevo = VBA.Left(str & Application.WorksheetFunction.Rept(" ", Ancho), Ancho) Range("A1").Value = textoNuevo End Sub Cualquier duda puedes enviarme un mensaje en mi fanpage que esta en la descripción de mi video. Saludos
Muchas gracias. Pero tengo un detalle, yo quisiera que el resultado fuera asi 👇🏼 Primera columna|Segunda Columna|Tercer Columnas Fila 2 A|Fila 2 B|Fila 2 C Fila 3 A|Fila 3 B|Fila 3 C Fila 4 A|Fila 4 B|Fila 4 C Fila 5 A|Fila 5 B|Fila 5 C Fila 6 A|Fila 6 B|Fila 6 C Fila 7 A|Fila 7 B|Fila 7 C Fila 8 A|Fila 8 B|Fila 8 C Fila 9 A|Fila 9 B|Fila 9 C
para que no salga el Delimitador al comienzo yo hize esto For i = 1 To nfilas strCelda = "" a = 1 For j = 1 To ncol If a = 1 Then strCelda = wstock.Cells(i, j) Else strCelda = strCelda & Delim & wstock.Cells(i, j) End If a = a + 1 Next j TxtArchivo.WriteLine strCelda Next i
Hola Excelente explicación, Intento hacerlo pero me esta dando un error que no lo pillo, " Se ha producido el error '9' en tiempo de ejecución: Subíndice fuera del intervalo.. este es el código Sub ExportarTxt() Dim Fsc As FileSystemObject Dim tsTxtArchivo As Scripting.TextStream Dim wsProducto As Worksheet Dim NombreArchivo, RutaArchivo As String Dim nFilas, nColumnas As Integer Dim i, j As Integer Dim strCelda, StriDelim As String Set wsProducto = ThisWorkbook.Worksheets("Producto") NombreArchivo = "Prueba1.txt" RutaArchivo = ThisWorkbook.Path & "\" & NombreArchivo StrDelim = "|" Set fso = New FileSystemObject Set tsTxtArchivo = fso.CreateTextFile(RutaArchivo, True) nFilas = wsProducto.Range("A" & Rowa.Count).End(xlUp).Row nColumnas = wsProducto.Cells(1, Columns.Count).End(xlToLeft).Column ' i= Filas ' j= Columnas For i = 1 To nFilas strCelda = "" For j = 1 To nColumnas strCelda = strCelda & StrDelim & wsProducto.Cells(i, j).Text Next j tsTxtArchivo.WriteLine Right(strCelda, Len(strCelda) - 1) Next i tsTxtArchivo.Close MsgBox "Datos Exportados correctamente", vninformation, "Txt"
Muchas gracias por este tutorial me ha servido mucho para importar la declaración del IEPS de forma masiva
Eres el mejor, gracias a tu video me di cuenta de un pequeñisimo error que tenia en una macro anterior me faltaba solo una letra pero si no veo tu video ni me doy cuenta 😂
Excelente video despues de ver n videos que me sacaran de dudas me encontre con este oasis en el desierto gracias.
Que bueno que te haya servido.
Gracias por compartir es lo que estaba buscando, con este video podre acabar mi proyecto.
casi puedo tomar ese código y lo enmarco en la pared! jjajaj muy buena explicación!
Tutoriales que valen oro mi amigo, muchas gracias por compartir su conocimiento.
El mejor tutorial de la Red al 14/10/2021 Gracias!
Excelente video, muchas gracias, está muy bien explicado, me sirvió mucho para facilitar procesos de generación de archivos y cargas masivas en mi trabajo. Saludos !!
Exclente!! muchas gracias exclente tutorial me funcionó a la perfeccion
Maravilloso tutorial, te felicito! Explicado de manera sublime!
excelente video! gracias por el aporte, me sirvió de mucho.
Excelente, buen trabajo y bien detallado👨💻👍
ÚNETE al grupo de Whatsapp para compartir más ayuda en Excel VBA. bit.ly/42MyVV4
Ótimo vídeo, Brasil, gracias - vba exportar arquivo txt
Muy Bueno es excelente¡¡¡¡¡¡¡¡¡¡¡¡
Hola amigo, buen tutoría, una pregunta, concatene un par de campos para obtener un detalle, pero el archivo plano, pero se me mueve las lineas de un lado para otro, tendras alguna forma de limitar el espacio en que pueda crecer cada campo?
Gran ayuda con este video, tienes un suscriptor más, un duda, cómo hacer para que dentro del mismo código, el archivo creado se grabe en un tipo de condificación personalizada, ej. UTF8, UTF16, ANSI, etc... Estarémos agaradecidos por este tip, saludos!!!
buenas tardes a esta macro como le podria a gregar a parte de la delimitacion con pipe, que cada celda tuviera en el inicio y fin comillas
Muchas gracias me sirvió de mucho tu video
buen video me funciono bien en windows pero para mac me sale el error de librería filesystemobject habla otra forma de generar el txt sin utilizar filesystemobject.
Excelente, pero como seria separado por comas o el palito?
Excelente video! 👍
Hola!! Primero de todo felicitarte por el tutorial, muy bien explicado y muy util. A ver si me puedes ayudar porque me devuelve el error 52 cuando llega a esta parte del código: set tstxtArchivo=fso.createtextfile(rutaarchivo,true). Muchas gracias
gracias amigo muchas gracias de verdad
Hola consulta.... sabrás como hacer la delimitación pero respetando el tamaño del campo? ejemplo que el campo nombre tenga máximo 50 caracteres y si se sobrepasa, se corte y el write continue con el siguiente dato?
Claro, pero explicarlo por aquí sería complicado. Tendría q hacer un vídeo sobre eso
@@maihuire11 si es posible solo envía el código y yo lo interpreto
Te consulto, en la parte de la ruta, como sería para ponerle una ruta especifica?
Excelente explicacion 🙏
Eres el master, gracias
Excelente el tutorial que agiliza el trabajo, solo que no me funciona cuando la data es de una sola linea
Execlente tutorial...
hola muchas gracias, podrías explicarme por favor como puedo hacer para que ignore las celdas en blanco? sucede que cuando genera el txt lo que hace es rellenar los espacios de las celdas en blanco con el delimitador. de ante mano muchas gracias
Buenas tardes amigo me aparece error 13 en el renglón de strdelim="," que podrá ser ya la reescribí y cambio el carácter por Pipe y sigue
Muy bueno, gracias
Saludos. Cuando estoy termino todo y ejecuto me sale este mensaje "Se ha producido el error "91" en tiempo de ejecución: variable de objeto o bloque With no establecido. Me podrian ayudar a encontrar a que se debe este error?
Hola, Que error te marca luego de ese mensaje?
@@maihuire11 con "tsTxtArchivo.WriteLine strCelda" y/o "tsTxtArchivo.WriteLine Right(strCelda, Len(strCelda) - 1)" por mas que se haga correr salta de amarillo esa parte
@@everthmerxe Hola, antes que se resalte el error debe salirte un mensaje de error, cual es ese?
Funciona muy bien, solo que siempre me genera una linea al final en blanco, como puedo hacer para evitar que se genere sin tener que ingresar al archivo txt y borrar.
Hola como estas?, Tenes un video en lo que hagas lo contrario? Es decir de txt a Excel. Necesito crear un macro en la que busque un archivo txt en un carpeta y lo pase a una planilla de excel legible. Lo puedo hacer desde: Datos -> Nueva consulta -> Desde un archivo -> Desde un archivo CSV. Lo que necesito es saber como grabar la macro para que hago lo mismo de forma automatica. Saludos gracias de ante mano!
increíble video, pero tengo una duda, qué código podría agregar para insertar 10 espacios entre una columna y otra? Saludos
Hola, una pregunta, cómo puedo hacer para que siempre se genere el txt en el escritorio del computador, sin importar desde qué computador se ejecute?
excelente video. tengo un problema porque el archivo es muy grande y no puedo abrirlo. como podría darle solución
Porque al convertir un archivo de txt a xlm me marca error?
Les paso un tip, si desean delimitar los campos con tabuladores pueden usar (vbTab) en lugar de StrDelim, esto implica borrar la declaración y usar directamente (vbTab)
Hola consulta.... sabrás como hacer la delimitación pero respetando el tamaño del campo? ejemplo que el campo nombre tenga máximo 50 caracteres y si se sobrepasa, se corte y el write continue con el siguiente dato?
Excelente me sirvió 👍🏻👍🏻
Buen video, pero tengo una duda, si quiero agregar algunas columnas y no todas, ejemplo j = 1, 2, 7, 8. ¿Como puedo hacerlo?
Hola, gracias por el video, tengo una pregunta. Se puede realizar una sola macro para que convierta varios archivos, es decir, si tengo varios archivos iguales, pero con diferentes datos, debo hacer la macro para cada archivo?
Hola, puedes usar una sola macro para realizar eso. Para este caso deberas listar mediante macro todos los libros de excel de una ruta.
Hola quisiera saber lo mismo ya que en un solo libro tengo 3 hojas y quisiera que de cada hoja sacará un archivo txt
como podria especificar que el archivo txt sea UTF-8
podrias ayudar con esto para no tener este inconveniente no se enmcuentra definido el FileSystemObject
Hola deberias agregar la referencia de Microsoft Scripting Runtime. Lo explico en el minuto 03:08
Saludos
@@maihuire11 Y se puede hacer esta macro son esa referencia, ya que quiero compartir el archivo?!!! Se agrega al libro o el usuario debe agregarla?!!!
@@hampartnonarts4818 Cuando se abre en otra pc el usuario debe volver a agregar la referencia.
@@iamfredd7261 Gracias por la respesta...
@@maihuire11 Hola. Tengo excel 2007. Agrego la referencia pero no me lo toma. Es por la version de excel?
Hola disculpa, si después de este proceso , necesito que se eliminen del .txt las filas en ceros? que codigo le puedo agregar a esta macro ?
Hola, deberías usar la funcion replace, de esta manera:
replace(campo,"0","")
Agregué el código pero al ejecutar la macro no hace nada, ¿a qué se deberá?
hola amigo con tu rutina me crea el archivo " csv "pero solo hasta la columna 118 y tengo un archivo de 126 columnas. que puedo hacer?
Debes ponerle la fila ufila=126
@@maihuire11 en donde se la coloco, el archivo a convertir empieza en la fila 7 y son 11 registros y tienes 126 columnas , te agradesco tu colaboracion a este dilema.
Sub exportarTxt()
Dim fso As FileSystemObject
Dim tstxtarchivo As Scripting.TextStream
Dim wsNOMINAE As Worksheet
Dim nombreArchivo, rutaarchivo As String
Dim nFilas, ncolumnas As Integer
Dim i, j As Integer
Dim strcelda, strDelim As String
Set wsNOMINAE = ThisWorkbook.Worksheets("NOMINAE")
nombreArchivo = "Nomina Electronica.csv"
rutaarchivo = ThisWorkbook.Path & "\" & nombreArchivo
strDelim = ","
Set fso = New FileSystemObject
Set tstxtarchivo = fso.CreateTextFile(rutaarchivo, True)
nFilas = wsNOMINAE.Range("A" & Rows.Count).End(xlUp).Row
ncolumnas = wsNOMINAE.Cells(1, Columns.Count).End(xlToLeft).Column
'i = filas
'j = columnas
For i = 7 To nFilas
strcelda = ""
For j = 1 To ncolumnas
strcelda = strcelda & strDelim & wsNOMINAE.Cells(i, j).Text
Next j
tstxtarchivo.WriteLine Right(strcelda, Len(strcelda) - 1)
Next i
tstxtarchivo.Close
MsgBox " Archivo de texto Generado", vbInformation, "txt"
End Sub
hola amigo, gracias por compartir tu archivo, me esta saliendo error
tsTxtArchivo.WriteLine rigth(strCelda, Len(strCelda) - 1)
me sale error de complicaion , no se ha definido sub o funtion
favor si me puedes ayudar gracias
hola, has escrito mal la funcion, escribela así Right
Hola. Hice el mismo paso, pero me dice Error de compilación. No se ha definido el tipo definido por el usuario. Antemano muchas gracias por el video y agradezco me ayudes con el error.
Hola, y si deseo que solo se impriman 5 columnas asi una columna no tenga datos como haria?
Hola, en ese caso tienes que concatenar las columnas que deseas con un separador de columnas solo usarias el for de filas y no de columnas no usarias el for, x ejemplo:
En la variable str pondrías el sigueinte código:
for i=1 to n filas
str = wshoja.cells(i,1).value & "|" & wshoja.cells(i,2).value & "|" & wshoja.cells(i,3).value
next i
y asi puedes colocar mas columnas en la variable str.
Tendrás el archivo del ejemplo?
Hola! Alguno sabe cómo hacer cuando con la macro se guarda el archivo en txt para que no convierta comas en puntos?
Buenas, muy buen video. He seguido los pasos y em da un error 52, la referencia de Micrososft Scriptin Runtime está con el check y aún asi me sale un error 52 en tiempo de ejecución: Nombre o Numero de archivo incorrecto. Sabrías decirme por donde esta el errro? Te copio mi macro:
Sub ExportarCSV()
Dim fso As FileSystemObject
Dim tsCsvArchivo As Scripting.TextStream
Dim wsProducto As Worksheet
Dim NombreArchivo, RutaArchivo As String
Set wsProducto = ThisWorkbook.Worksheets("Interes")
NombreArchivo = "Datos001.csv"
RutaArchivo = ThisWorkbook.Path & "\" & NombreArchivo
MsgBox RutaArchivo
Set fso = New FileSystemObject
Set tsCsvArchivo = fso.CreateTextFile(RutaArchivo, True)
End Sub
Hola TutorialesLAB. Buen video, pero tengo una consulta, ¿Cómo seria para exportar a mas de un txt es decir crear un txt cada 15 filas del Excel y siendo que la ultima fila es variable, es decir puede concluir en la fila 50, 60 o mas?
Hola de manera general te puedo decir que deberias utilizar el bucle for. Te doy un ejemplo generico.
For i=2 to 300 Step 15
'Aqui colocar codigo de exportar txt
next i
En el ejemplo anterior tomo como ejemplo que los datos comienzan en la fila 2 y termina en la fila 300 y donde dice Step 15, quiere decir el bucle se ejecutara de 15 en 15 registros.
@@maihuire11 Hola , logré crear el bucle, pero como puedo incluir que el encabezado o título (fila1), siempre acompañe los 15 renglones de información?
hola, me aparece un error en esta parte del codigo => Set tsTxtArchivo = fso.CreateTextFile(RutaArchivo, True), nose como solucionarlo! sludos
Tienes que agregar una referencia esta en el minuto: 3:02
@@maihuire11 gracias
cae en error Dim fso As FileSystemObject
tienes que agregar la referencia de Microsoft Scripting Runtime lo explican en el video
@@rcarlosb03 Y se puede hacer esta macro son esa referencia, ya que quiero compartir el archivo?!!! Se agrega al libro o el usuario debe agregarla?!!!
Solo funciona cuando hay pocas filas, lo intente con 2k filas pero no se ejecuta el proceso completo , en el txt se generan con las filas incompletas
con 2 mil filas?
@@maihuire11 si 2000, filas
Crees que pueda existir alguna solución?
@@felipehernandez970 Esto funciona sin ningún problema con 2000 filas. Fijate bien como estas poniendo el codigo en la variable nFilas
@@maihuire11 si ya vi cuál es el tema al momento de guardar el archivo en una ubicación de red tarda demasiado o sale error
Contrario si guardo en una ubicación de mi equipo es muy rápido , no he encontrado como hacer el guardado más rápido
O guardar en el equipo y después copiar el archivo a la ruta de red
Aún estás activo aquí.? Podrías brindarme un asesoría.?
Hola entra a mi fanpage de facebook y contactame x ahi.
@@maihuire11 ok, gracias...
¿Como se puede generar el TXT con un ancho diferente para cada columna ?
Hola, a que te refieres exactamente?
@@maihuire11 Buenas, me refiero que al generar el txt en lugar de estar separado (concatenado) cada dato de una celda por " | " o tabulación, esté definido con un ancho fijo para cada celda (columna) . Ejemplo : si la celda A1 es numérica y tiene dos caracteres y quiero que el ancho fijo en el txt sea de 15 caracteres, que al generarlo me rellene los caracteres que faltan con espacio o cualquier otro signo que yo indique. Así con todas las columnas tanto numéricas como de texto, a las cuales yo pueda indicarle que ancho fijo quiero en el txt, y los caracteres que me falten me los rellene, por ejemplo como he dicho antes, con espacio.
GRACIAS y un saludo.
@@jacastamp Ok, entiendo tu punto. En ese caso el codigo cambiaria. Puedo darte una pista de como realizar el codigo.
Debes tener una variable por cada columna donde almacenes el ancho de cada una y al momento de escribir en el txt debes hacer el código para que cuando tenga menos de el ancho indicado lo aumente con algun caracter x ejemplo espacios.
Sub CopletarTexto()
Dim str As String
Dim Ancho As Integer
Ancho = 6 ' Ancho de la columna
str = "hola" 'Texto de la columna
textoNuevo = VBA.Left(str & Application.WorksheetFunction.Rept(" ", Ancho), Ancho)
Range("A1").Value = textoNuevo
End Sub
Cualquier duda puedes enviarme un mensaje en mi fanpage que esta en la descripción de mi video.
Saludos
SERIA INTERESANTE UNA DE MACRO PARA PASAR DATOS DE EXCEL A CSV
hola, lo tendré en cuenta. Aunque tambien puedes cambiar la extension .txt por CSV y validar si funciona o no.
hola, lo tendré en cuenta. Aunque tambien puedes cambiar la extension .txt por CSV y validar si funciona o no.
Muchas gracias. Pero tengo un detalle, yo quisiera que el resultado fuera asi 👇🏼
Primera columna|Segunda Columna|Tercer Columnas
Fila 2 A|Fila 2 B|Fila 2 C
Fila 3 A|Fila 3 B|Fila 3 C
Fila 4 A|Fila 4 B|Fila 4 C
Fila 5 A|Fila 5 B|Fila 5 C
Fila 6 A|Fila 6 B|Fila 6 C
Fila 7 A|Fila 7 B|Fila 7 C
Fila 8 A|Fila 8 B|Fila 8 C
Fila 9 A|Fila 9 B|Fila 9 C
Primera columna|Segunda Columna|Tercer Columnas
Fila 2 A|Fila 2 B|Fila 2 C
Fila 3 A|Fila 3 B|Fila 3 C
Fila 4 A|Fila 4 B|Fila 4 C
Fila 5 A|Fila 5 B|Fila 5 C
Fila 6 A|Fila 6 B|Fila 6 C
Fila 7 A|Fila 7 B|Fila 7 C
Fila 8 A|Fila 8 B|Fila 8 C
Fila 9 A|Fila 9 B|Fila 9 C
Pero me sale así, de forma acumulada. 👇🏼
|Primera columna|Segunda Columna|Tercer Columnas
|Primera columna|Segunda Columna|Tercer Columnas|Fila 2 A|Fila 2 B|Fila 2 C
|Primera columna|Segunda Columna|Tercer Columnas|Fila 2 A|Fila 2 B|Fila 2 C|Fila 3 A|Fila 3 B|Fila 3 C
|Primera columna|Segunda Columna|Tercer Columnas|Fila 2 A|Fila 2 B|Fila 2 C|Fila 3 A|Fila 3 B|Fila 3 C|Fila 4 A|Fila 4 B|Fila 4 C
|Primera columna|Segunda Columna|Tercer Columnas|Fila 2 A|Fila 2 B|Fila 2 C|Fila 3 A|Fila 3 B|Fila 3 C|Fila 4 A|Fila 4 B|Fila 4 C|Fila 5 A|Fila 5 B|Fila 5 C
|Primera columna|Segunda Columna|Tercer Columnas|Fila 2 A|Fila 2 B|Fila 2 C|Fila 3 A|Fila 3 B|Fila 3 C|Fila 4 A|Fila 4 B|Fila 4 C|Fila 5 A|Fila 5 B|Fila 5 C|Fila 6 A|Fila 6 B|Fila 6 C
|Primera columna|Segunda Columna|Tercer Columnas|Fila 2 A|Fila 2 B|Fila 2 C|Fila 3 A|Fila 3 B|Fila 3 C|Fila 4 A|Fila 4 B|Fila 4 C|Fila 5 A|Fila 5 B|Fila 5 C|Fila 6 A|Fila 6 B|Fila 6 C|Fila 7 A|Fila 7 B|Fila 7 C
|Primera columna|Segunda Columna|Tercer Columnas|Fila 2 A|Fila 2 B|Fila 2 C|Fila 3 A|Fila 3 B|Fila 3 C|Fila 4 A|Fila 4 B|Fila 4 C|Fila 5 A|Fila 5 B|Fila 5 C|Fila 6 A|Fila 6 B|Fila 6 C|Fila 7 A|Fila 7 B|Fila 7 C|Fila 8 A|Fila 8 B|Fila 8 C
|Primera columna|Segunda Columna|Tercer Columnas|Fila 2 A|Fila 2 B|Fila 2 C|Fila 3 A|Fila 3 B|Fila 3 C|Fila 4 A|Fila 4 B|Fila 4 C|Fila 5 A|Fila 5 B|Fila 5 C|Fila 6 A|Fila 6 B|Fila 6 C|Fila 7 A|Fila 7 B|Fila 7 C|Fila 8 A|Fila 8 B|Fila 8 C|Fila 9 A|Fila 9 B|Fila 9 C
|Primera columna|Segunda Columna|Tercer Columnas|Fila 2 A|Fila 2 B|Fila 2 C|Fila 3 A|Fila 3 B|Fila 3 C|Fila 4 A|Fila 4 B|Fila 4 C|Fila 5 A|Fila 5 B|Fila 5 C|Fila 6 A|Fila 6 B|Fila 6 C|Fila 7 A|Fila 7 B|Fila 7 C|Fila 8 A|Fila 8 B|Fila 8 C|Fila 9 A|Fila 9 B|Fila 9 C|Fila 10|Fila 10|Fila 10
para que no salga el Delimitador al comienzo yo hize esto
For i = 1 To nfilas
strCelda = ""
a = 1
For j = 1 To ncol
If a = 1 Then
strCelda = wstock.Cells(i, j)
Else
strCelda = strCelda & Delim & wstock.Cells(i, j)
End If
a = a + 1
Next j
TxtArchivo.WriteLine strCelda
Next i
y donde esta la macro para descargar?
Hola Excelente explicación, Intento hacerlo pero me esta dando un error que no lo pillo, " Se ha producido el error '9' en tiempo de ejecución: Subíndice fuera del intervalo.. este es el código
Sub ExportarTxt()
Dim Fsc As FileSystemObject
Dim tsTxtArchivo As Scripting.TextStream
Dim wsProducto As Worksheet
Dim NombreArchivo, RutaArchivo As String
Dim nFilas, nColumnas As Integer
Dim i, j As Integer
Dim strCelda, StriDelim As String
Set wsProducto = ThisWorkbook.Worksheets("Producto")
NombreArchivo = "Prueba1.txt"
RutaArchivo = ThisWorkbook.Path & "\" & NombreArchivo
StrDelim = "|"
Set fso = New FileSystemObject
Set tsTxtArchivo = fso.CreateTextFile(RutaArchivo, True)
nFilas = wsProducto.Range("A" & Rowa.Count).End(xlUp).Row
nColumnas = wsProducto.Cells(1, Columns.Count).End(xlToLeft).Column
' i= Filas
' j= Columnas
For i = 1 To nFilas
strCelda = ""
For j = 1 To nColumnas
strCelda = strCelda & StrDelim & wsProducto.Cells(i, j).Text
Next j
tsTxtArchivo.WriteLine Right(strCelda, Len(strCelda) - 1)
Next i
tsTxtArchivo.Close
MsgBox "Datos Exportados correctamente", vninformation, "Txt"
End Sub
Gracias por la ayuda!
Cambia el destino de almacenamiento a tu disco local
Me pasa lo mismo, ¿pudiste solucionarlo?
como hago un macro que convierta varias hojas en un solo archivo txt sin que aparezcan mas columnas, si no solo las columnas de cada hoja.
Hola, si es posible, solo tienes que indicarme si cada hoja tiene la misma cantidad de columnas o diferentes.
@@maihuire11 diferentes cantidades de columnas
@@EstadisticaHSFV-jw4hz Si es posible realizar lo que necesitas.