Guardar base de datos de hoja de excel, como respaldo

Dr amor. Una consulta como puedo guardar los datos que vaya guardando el formulario pero de forma paralela como respaldo, en otra hoja alojada por ejemplo en mis documentos, al guardar los datos del formulario que lo guarde en dos tipos de formulario. Atento a sus respuestas.

1 respuesta

Respuesta
1

En el formulario no se guardan los datos, digamos que en el formulario los datos están en memoria, cuando cierras el formulario la memoria se vacía.

Lo que puedes hacer es aplicar el filtro en la hoja y guardar una copia de la hoja.

Después de filtrar la hoja, puedes guarda la hoja con lo siguiente:

Sub Macro6()
'
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ruta = ThisWorkbook.Path & "\"
    arch = Sheets("Hoja1").Name
    Sheets("Hoja1").Copy
    ActiveWorkbook.SaveAs Filename:=ruta & arch & ".xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWorkbook.Close
    MsgBox "Hoja guardada"
End Sub

Cambia "Hoja1" por el nombre de tu hoja


.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Va la macro para guarda la hoja con todo y filtro desde el userform

El código va en commandbutton4

Private Sub CommandButton4_Click()
'exportar a hoja
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    '
    Set l1 = ThisWorkbook
    Set h1 = ActiveSheet
    ruta = ThisWorkbook.Path & "\"
    arch = ActiveSheet.Name
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    u = h1.Range("A" & Rows.Count).End(xlUp).Row
    h1.Copy
    Set l2 = ActiveWorkbook
    Set h2 = l2.Sheets(1)
    f1 = CDate(ComboBox1.Value)
    If ComboBox2.Value = "" Then
        f2 = f1
    Else
        f2 = CDate(ComboBox2.Value)
    End If
    '
    For i = u To 3 Step -1
        If h2.Cells(i, "E") >= f1 And h2.Cells(i, "E") <= f2 Then
        Else
            h2.Rows(i).Delete
        End If
    Next
    On Error Resume Next
    h2.DrawingObjects("Button 1").Delete
    On Error GoTo 0
    l2.SaveAs Filename:=ruta & arch & ".xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    l2.Close
    MsgBox "Hoja guardada"
End Sub

Private Sub CommandButton4_Click()
'exportar a hoja
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'
Set l1 = ThisWorkbook
Set h1 = ActiveSheet
ruta = ThisWorkbook.Path & "\"
arch = ActiveSheet.Name
If h1.AutoFilterMode Then h1.AutoFilterMode = False
u = h1.Range("A" & Rows.Count).End(xlUp).Row
h1.Copy
Set l2 = ActiveWorkbook
Set h2 = l2.Sheets(1)
f1 = CDate(ComboBox1.Value)
If ComboBox2.Value = "" Then
f2 = f1
Else
f2 = CDate(ComboBox2.Value)
End If
'
For i = u To 3 Step -1
If h2.Cells(i, "E") >= f1 And h2.Cells(i, "E") <= f2 Then
Else
h2.Rows(i).Delete
End If
Next
On Error Resume Next
h2.DrawingObjects("Button 1").Delete
On Error GoTo 0
l2.SaveAs Filename:=ruta & arch & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
l2.Close
MsgBox "Hoja guardada"
End Sub

¡Gracias!

Muchísimas gracias!

¿Dónde dejo la condición o el mensaje para que uno de los dos combobox este seleccionado para que pueda exportarse el excel?

¿Te envía un mensaje de error?

No entiendo, ¿te refieres a que si el combobox1 está vacío?

Tienes que poner la condición al inicio de la macro

if combobox1.value = "" or combobox1.listindex = -1 then exit sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas