Modificar Macros para exportar excel a Txt separado con comas

Hay una macro me gustaría que me ayuden a modificar, lo que deseo es que al abrir mi formulario en la "hoja 1" me exporte datos que están en la "hoja2" en un rango por defecto rango de "A1:D50" automáticamente. Adjunto la macros mencionada.

Private Sub EXPORTAR_Click()
Const DELIMITER As String = ","
    Dim myRecord As Range
    Dim myField As Range
    Dim nFileNum As Long
    Dim sOut As String
    nFileNum = FreeFile
    ruta = ThisWorkbook.Path
    ChDir ruta
    Open "REPORTE.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
MsgBox "Se ha Exportado Correctamente!!! ", vbInformation, "EXPORTAR"
End Sub

2 Respuestas

Respuesta
1

Dante Amor por favor me podrías ayudar en esto.

Respuesta
1

Ya no entendí, ¿quieres exportar datos de la hoja1 ó de la hoja2?

¿Me dices cuál rango quieres exportar?

¿Y exactamente cómo se verían los registro en el archivo exportado?

Envíame un correo con tus datos ejemplo de excel y con el archivo txt del mismo ejemplo.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario "Ivan Wiliams" y el título de esta pregunta.

Ok Dante . te envíe a tu correo. Nuevamente gracias.

Esta es la macro para que exporte la hoja2

Private Sub CommandButton1_Click()
    Const DELIMITER As String = ","
    Dim myRecord As Range
    Dim myField As Range
    Dim nFileNum As Long
    Dim sOut As String
    nFileNum = FreeFile
    ruta = ThisWorkbook.Path
    ChDir ruta
    Open "REPORTE.txt" For Output As #nFileNum
    Set h1 = Sheets("HOJA-REPORTE")
    For Each myRecord In h1.Range("A1:A" & _
                h1.Range("A" & Rows.Count).End(xlUp).Row)
        With myRecord
            For Each myField In h1.Range(.Cells, h1.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
    MsgBox "Se ha Exportado Correctamente!!! ", vbInformation, "EXPORTAR"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas