Guardar hoja de excel en archivo txt...

Hola,
Estoy haciendo una macro para guardar informacion de una hoja de excel en un archivo de texto... Necesito que el codigo me guarde con diferente nombre los archivos, encontre este codigo en internet pero esta limitado a guardar siempre sobre el mismo nombre no se si alguien me pueda ayudar.
Por ejemplo que me guarde con el valor de una variable...por decir "x"
Este es el codigo 
Const DELIMITER As String = "|"
Dim myRecord As Range
Dim myField As Range
Dim nFileNum As Long
Dim sOut As String
nFileNum = FreeFile
Open "Archivo Plano.txt" For Output As #nFileNum
For Each myRecord In Range("A1:A" & _
Range("A" & Rows.Count).End(xlUp).Row)
With myRecord
For Each myField In Range(.Cells, _
Cells(.Row, Columns.Count).End(xlToLeft))
sOut = sOut & DELIMITER & myField.Text
Next myField
Print #nFileNum, Mid(sOut, 2)
sOut = Empty
End With
Next myRecord
Close #nFileNum
Const DELIMITER As String = "|"Dim myRecord As RangeDim myField As RangeDim nFileNum As LongDim sOut As String
nFileNum = FreeFileOpen "Archivo Plano.txt" For Output As #nFileNumFor Each myRecord In Range("A1:A" & _Range("A" & Rows.Count).End(xlUp).Row)With myRecordFor Each myField In Range(.Cells, _Cells(.Row, Columns.Count).End(xlToLeft))sOut = sOut & DELIMITER & myField.TextNext myFieldPrint #nFileNum, Mid(sOut, 2)sOut = EmptyEnd WithNext myRecordClose #nFileNum
Gracias por su ayuda

1 Respuesta

Respuesta
1
La pregunta es: ¿Cómo obtendrás el nombre del archivo "x"?
Este es el codigo completo:
Sub GeneraArchivoPlano()
'GeneraArchivoPlano (08 / Sep / 2010)
'Macro para la generacion de archivos planos que contendran informacion para dar de alta en Oracle
' ©Jesus Adrian Colunga Almaguer, 2010
' Primera versión: Miercoles 08 de Septiembre del 2010
i = 4
j = 1
'Abre la plantilla de informacion de vehiculos
Workbooks.Open Filename:="C:\Documents and Settings\JACA\Escritorio\Plaza Acapulco APO\Plantilla\Plantilla de informacion de vehiculos.xls"
Do While valor1 > 0
    Windows("Plantilla de informacion de vehiculos.xls").Activate
    ActiveSheet.Unprotect 'Desprotejemos la hoja de calculo
    Columns("A:B").Select
    Selection.EntireColumn.Hidden = False
    Range("A4").Select
    ActiveCell.FormulaR1C1 = "=RC[7]" 'Igualamos la celda con el numero de serie
    Range("A4").Select
    Selection.AutoFill Destination:=Range("A4:A106"), Type:=xlFillDefault
    Range("A4:A106").Select
    ActiveWindow.SmallScroll Down:=-78
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
'Asignamos valor a la variable
valor1 = Cells(i, 1)      'Valor de la Celda A4
valor2 = Cells(i, 14)    'Valor de la Celda N4
valor3 = Cells(j, 3)      'Valor de la celda C1
Workbooks.Open Filename:="C:\Documents and Settings\JACA\Escritorio\Plaza Acapulco APO\Archivo base.xlsx"
    'Reemplazamos el archivo base con los valores insertados en las variables valor1, valor2 y valor3
    Cells.Replace What:="X", Replacement:=valor1, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Cells.Replace What:="Y", Replacement:=valor3, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Cells.Replace What:="Z", Replacement:=valor2, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'Guarda el libro Archivo Base en un archivo de texto
Const DELIMITER As String = "|"
Dim myRecord As Range
Dim myField As Range
Dim nFileNum As Long
Dim sOut As String
nFileNum = FreeFile
Open "Archivo Plano.txt" For Output As #nFileNum
For Each myRecord In Range("A1:A" & _
Range("A" & Rows.Count).End(xlUp).Row)
With myRecord
For Each myField In Range(.Cells, _
Cells(.Row, Columns.Count).End(xlToLeft))
sOut = sOut & DELIMITER & myField.Text
Next myField
Print #nFileNum, Mid(sOut, 2)
sOut = Empty
End With
Next myRecord
Close #nFileNum
ActiveWorkbook.Close savechanges:=False
i = i + 1
Loop
Windows("Plantilla de informacion de vehiculos.xls").Activate
    ActiveWindow.Close
End Sub
Me gustaria que en cada loop el archivo se guardara con el valor de la variable valor1
No se si fui un poco mas claro...
Open "Archivo Plano.txt" For Output As #nFileNum
Open valor1 For Output As #nFileNum 
.
¿Te parece esta sustitución? Pruébala.
¿Ya la probaste?... comenta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas