Guardar con nombre de celda

Hola tengo la siguiente macro que me exporta mis datos de excel a un archivo txt. Lo que pasa es que la exporta con un nombre especifico, lo que quiero es esta misma macro la exporte con el nombre de una celda. Agradecería mucho su ayuda. Esta es la macro que tengo: Saludos.

Sub ExportarDelimitado()
Dim wksH As Worksheet
Dim intFich As Integer, lngNumReg As Long, strCad As String
Dim lngContL As Long, intContC As Integer, n As Long
Set wksH = Worksheets("Hoja1") 'Hoja donde están los datos
intFich = FreeFile(0)
lngContL = 8 'Se empezará a exportar en la fila 2 (se entiende que la 1ª es de títulos)
intContC = 34 'Se exportarán las columnas 1 a 3
If Dir("F:\LE2040933620620140100080100001111.txt") <> "" Then Kill ("F:\LE2040933620620140100080100001111.txt") 'Si ya existe C:\LE2040933620620140100080100001111.txt, lo borra.
Open "F:\LE2040933620620140100080100001111.txt" For Output As intFich
While Not IsEmpty(wksH.Cells(lngContL, 1))
For n = 1 To intContC
strCad = strCad & "" & wksH.Cells(lngContL, n) & "|"
Next n
strCad = Left(strCad, Len(strCad)) 'Para quitar el último delimitador por la derecha
Print #intFich, strCad
lngContL = lngContL + 1
strCad = ""
Wend
Close intFich
Set wksH = Nothing
End Sub

1 Respuesta

Respuesta
1

Quedaría así

Sub ExportarDelimitado()
Dim wksH As Worksheet
Dim intFich As Integer, lngNumReg As Long, strCad As String
Dim lngContL As Long, intContC As Integer, n As Long
Set wksH = Worksheets("Hoja1") 'Hoja donde están los datos
intFich = FreeFile(0)
lngContL = 8 'Se empezará a exportar en la fila 2 (se entiende que la 1ª es de títulos)
intContC = 34 'Se exportarán las columnas 1 a 3
celda = Range("A1") 'Mod.Por.DAM
If Dir("F:\" & celda & ".txt") <> "" Then Kill ("F:\" & celda & ".txt") 'Si ya existe C:\LE2040933620620140100080100001111.txt, lo borra.
Open "F:\" & celda & ".txt" For Output As intFich
While Not IsEmpty(wksH.Cells(lngContL, 1))
 For n = 1 To intContC
 strCad = strCad & "" & wksH.Cells(lngContL, n) & "|"
 Next n
 strCad = Left(strCad, Len(strCad)) 'Para quitar el último delimitador por la derecha
 Print #intFich, strCad
 lngContL = lngContL + 1
 strCad = ""
Wend
Close intFich
Set wksH = Nothing
End Sub

Cambia en esta línea la celda que requieres

celda = Range("A1")

Saludos. No olvides finalizar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas