Guardar archivos con VBA

Hola, necesito el asesoramiento sobre un asunto que nadie es capaz de contestarme, para mí es complicado, pero te lo planteo por si no es mucho pedir me pudieras prestar tu ayuda.
Te explico, resulta que tras crear el correspondiente formulario en VBA, los datos del mismo los mando a un archivo de texto ".txt", y lo guardo con el nombre que se forma con la unión del contenido de varios textbox, el asunto es que necesito que ese archivo de texto se guarde en la carpeta FICHEROS GENERADOS, (y a continuación viene el problema), el archivo tiene que guardarse en formato ANSI, es decir, el archivo que se ha creado se tiene que guardar de la misma forma que si tras crear un documento con el bloc de notas de windows al guardarlo le diéramos el nombre correspondiente y pulsáramos en TIPO: Todos los archivos y en la opción CODIFICACIÓN: ANSI, te pongo aquí el código que utilizo para crear los archivos, el problema viene porque este tipo de archivos tienen que ser leídos por otro programa que lo recibe vía internet y solo acepta este tipo de documentos guardados de esta forma, el código que utilizo es el siguiente:
UbicaAplicacion = ThisDocument.Path
Dim DatosEstablec As String
Dim DatosHuespedes As String
Dim DatosAgrupacion As String
DatosAgrupacion = TextTipo0.Text
DatosEstablec = TextDatosEstablecim.Text
DatosHuespedes = TextDatosHuespedes.Text
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile(UbicaAplicacion & "\FICHEROS GENERADOS\" & TextCodigo & "." & TextNumSerieArchivo.Text, True)
a.WriteLine (DatosEstablec & DatosHuespedes)
a.Close
'Bueno, espero que no sea muy complicado para tí, me harías un gran favor si me echaras una mano en este asunto.
En resumen lo que necesito es que cree un archivo que otro programa no lo reconozca como texto, aunque lo guardo con una extensión que no es de texto (. 001), pero el código que utilizo no lo hace, tengo que volver a abrir el archivo con el bloc de notas y guardarlo con el mismo nombre pero poniendo en Tipo: Todos los archivos.
Espero haberme explicado bien, y gracias de antemano por tu ayuda.-
Gracias de antemano.

1 respuesta

Respuesta
1
Me parece que podrías resolverlo creando el archivo desde VBA, pero no mediante la aplicación de Windows, sino, simplemente generando un archivo mediante el método Open, con este puedes crear un archivo de acceso aleatorio o binario, como prefieras y así no te quedaría con el tipo texto.
No se si me he explicado bien, la idea es usar:
Open "ruta/filename.001" for input as #1
'aqui metes la información
Close #1
Supongo que ya debes haber entendido de lo que hablo, sino o tienes problemas con esta solución, no dudes en preguntar nuevamente.
Perdona que te vuelva a molestar con la misma pregunta, la respuesta que me comentas es exactamente lo que necesito, el problema es que no consigo que funcione al modificar las líneas, lo he probado de muchísimas formas pero siempre me da error, si me puedes asesorar de como modificar el código que tengo para utilizar la línea Open "ruta/filename.001" for input as #1
y seguidamente ponerle el código para que añada los datos en el archivo:
a.WriteLine (DatosEstablec & DatosHuespedes)
y que se cierre Close #1
me harías un gran favor.
Si es necesario te vuelvo a hacer esta pregunta en otra nueva pregunta.
Gracias.
Funciona así:
Open UbicaAplicacion & "\FICHEROS GENERADOS\" & TextCodigo & "." & TextNumSerieArchivo.Text For Output As #1
Print #1, DatosEstablec & DatosHuespedes
Close #1
Supongo que en:
UbicaAplicacion & "\FICHEROS GENERADOS\" & TextCodigo & "." & TextNumSerieArchivo.Text
Tienes la ruta y nombre y extensión del archivo.
Espero que te funcione.
Saludos, Tavopz
PD.: No olvides finalizar la pregunta.
PD2.: Disculpa que en la anterior respuesta te puse Input en lugar de Output, fue un error.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas