Ejecutar Codigo Desde un boton en userform

Tengo el sigueinte problema utilice el siguiente código del maestro Dante Amor

Sub Botón2_Haga_clic_en()
'Por.DAM
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    If Range("A1") = "" Then Exit Sub
    n = Range("A1")
    Range("1:1048576").Copy
    Workbooks.Add
    ActiveSheet.Paste
        ActiveWorkbook.SaveAs FileName:=ThisWorkbook.Path & "\ARCHIVO\" & n & ".txt", _
            FileFormat:=xlTextMSDOS, CreateBackup:=False
        ActiveWorkbook.Close False
    MsgBox "Archivo: " & n & " creado", vbInformation, "CREAR TXT"
End Sub

para generar un archivo txt de una hoja. Pero este se ejecuta desde un boton creado en una hoja del libro de excel. Lo que busco es como aplicarlo en un boton de un userfrom.

1 respuesta

Respuesta
2

En tu formulario dale doble click a tu botón.

Te lleva al código del commandbutton, entonces copia la macro, te debe quedar algo así:

Private Sub CommandButton1_Click()
'Por.DAM
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    If Range("A1") = "" Then Exit Sub
    n = Range("A1")
    Range("1:1048576").Copy
    Workbooks.Add
    ActiveSheet.Paste
        ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\ARCHIVO\" & n & ".txt", _
            FileFormat:=xlTextMSDOS, CreateBackup:=False
        ActiveWorkbook.Close False
    MsgBox "Archivo: " & n & " creado", vbInformation, "CREAR TXT"
End Sub

Dante Amor gracias por la respuesta ya avia colocado el código en un botón tal como esta, pero no me genera ningún archivo. Ya que por lo que veo me toma la hoja activa y no copia nada. Como quedaría para que me copie específicamente la hoja 2 que se llama productos y me la guarde en txt desde userfrom. Te agradezco de antemano.

Prueba con la siguiente, en la "Hoja2" en la celda A1 tienes que poner el nombre del archivo.

Private Sub CommandButton1_Click()
'Por.DAM
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set h = Sheets("Hoja2")
    If h.Range("A1") = "" Then
        MsgBox "Debes poner el nombre del archivo en la celda A1"
        Exit Sub
    End If
    n = h.Range("A1")
    h.Copy
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\ARCHIVO\" & n & ".txt", _
            FileFormat:=xlTextMSDOS, CreateBackup:=False
    ActiveWorkbook.Close False
    MsgBox "Archivo: " & n & " creado", vbInformation, "CREAR TXT"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas