Pon todo el siguiente código en el módulo.
Lo que hace es guardar el archivo como CSV separado por "comas", lo pongo entre comillas porque en el inter, estoy cambiando la configuración del sistema para que el separador de listas ahora sea el punto y coma ";", también apago la opción "utilizar separador del sistema".
Ahora sí, se guardar el archivo como txt, separado por punto y coma ";"
Al final de la macro se restablece la coma "," como el separador de listas y se activa la opción "utilizar separador del sistema".
También cuando se guarda el archivo se utiliza el parámetro Local:=True, para que utilice el separador de listas que se ha establecido.
Revisa el archivo y dime si es lo que necesitas
Private Declare Function GetLocaleInfo Lib "kernel32" Alias _
"GetLocaleInfoA" (ByVal Locale As Long, _
ByVal LCType As Long, ByVal lpLCData As String, _
ByVal cchData As Long) As Long
'
Private Declare Function SetLocaleInfo Lib "kernel32" Alias _
"SetLocaleInfoA" (ByVal Locale As Long, _
ByVal LCType As Long, ByVal lpLCData As String) As Long
'
Const LOCALE_USER_DEFAULT = &H400
'
Sub generar_texto()
'Act.Por.Dante Amor
Dim intUltimaFila As Long
Dim dl As Long
'
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ActiveSheet.Copy
intUltimaFila = Columns("A:A").Range("A65536").End(xlUp).Row
For r = intUltimaFila To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
Range("A1").Select
nbre = InputBox("Nombre del archivo")
If nbre = "" Then Exit Sub
ruta = "C:\Users\75070\Desktop" 'AQUI DEBES DEFINIR LA RUTA DONDE GUARDARAS TU ARCHIVO
ruta = "C:\trabajo"
Application.DisplayAlerts = False
'ActiveWorkbook.SaveAs Filename:=ruta & "\" & nbre & ".txt", _
FileFormat:=xlText, CreateBackup:=False
' Establecemos el nuevo símbolo del separador de listas
dl = SetLocaleInfo(LOCALE_USER_DEFAULT, &HC, ";")
Application.UseSystemSeparators = False
DoEvents
ActiveWorkbook.SaveAs Filename:=ruta & "\" & nbre & ".txt", _
FileFormat:=xlCSV, CreateBackup:=False, Local:=True
ActiveWorkbook.Close
'Reestablecemos la configuración
dl = SetLocaleInfo(LOCALE_USER_DEFAULT, &HC, ",")
Application.UseSystemSeparators = True
DoEvents
MsgBox ("Archivo generado exitosamente")
Application.ScreenUpdating = True
End Sub
.
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
.
Avísame cualquier duda