Macros en Excel: Necesito una macro que cree un archivo vacío .ini en un directorio específico.

Con ayuda he construido varias macros que funcionan perfectamente para vender programas en hoja electrónica pero al parecer, han descubierto dónde queda ubicado porque lo estoy montando desde un .rar ejecutable que descarga en una ruta y muestra la ruta.
Necesito una macro que se ejecute automáticamente desde una hoja electrónica y cree ese archivo en la siguiente ruta: c:\windows\addins\XXXYYYNNN.ini
El archivo debe quedar vacío. Me sirve que sólo tenga el nombre de archivo.

Respuesta

Añade el siguiente código en el evento que más te convenga, puede ser en el evento open del workbook:

Sub CreaArch()
Dim fsys As New Scripting.FileSystemObject
Dim ini As Object
Set fsys = CreateObject("Scripting.FileSystemObject")
Set ini = fsys.CreateTextFile("c:\windows\addins\XXXYYYNNN.ini", True)
ini.Close
End Sub

deberás añadir al libro la referencia de Microsoft scripting run time.

En la segunda línea, cuando lo compilo, indica: "no se ha definido el tipo definido por el usuario"... y supongo que está relacionado con tu nota al final, sobre la referencia de Microsoft scripting run time.
Gracias Jairo Martínez. No soy programador y, aunque yo hago mis programas en hoja electrónica, mi nivel de trabajo no es en VBA, sino funciones lógicas, matemáticas, estadísticas, financieras, trigonométricas y otras suertes de funciones combinadas relacionadas o similares.
Podrías escribirme un código completo sólo para colocarlo e indicarme si lo coloco en el libro activo o en módulo?

Cuando tengas el libro donde quieres la macro abierta realiza estos pasos:

1)Ve al editor de visual basic (Alt+F11)

2)Busca la pestaña herramientas en la parte superior, das click y te aparecerá referencias, entras, están ordenadas en orden alfabético así que vas hasta la M y agregas la referencia que te dije.

3)A la izquierda verás un pequeño módulo llamado workbook, entras y pegas el código de esta manera:

Private Sub Workbook_Open()
Dim fsys As New Scripting.FileSystemObject
Dim ini As Object
Set fsys = CreateObject("Scripting.FileSystemObject")
Set ini = fsys.CreateTextFile("c:\windows\addins\XXXYYYNNN.ini", True)
ini.Close
End Sub

No te olvides de valorar si te sirvió.

1 respuesta más de otro experto

Respuesta
-1

Pon este código en una sub de "abrirLibro" o de "ActivarHoja" para que se ajecute

open " c:\windows\addins\XXXYYYNNN.ini " as #1 : close(1)

Para que borre lo que tenga el archivo, si es que ya existe, pon esto

open " c:\windows\addins\XXXYYYNNN.ini " FOR OUTPUT as #1 : close(1)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas