Como crear una base da datos y realizar un back up al mismo tiempo

Tengo una hoja1 en la cual tengo varios datos en la celdas F:18:F24, Q11, G9, G10, G11, I11, L11

Yo necesito que todo lo que esta en la hoja 1 tal cual me la copie en la hoja2

Para luego llenar unos datos de factura en la misma hoja2 que son:

RAZON SOCIAL R.F.C, -CALLE:, No de interior, No de exterior, Cruzamientos, Colonia, Codigo postal:, Delegacion y municipioEstado:Email y telefono

Quisiera que al llenar los datos este me lo pidiese bajo un formulario. Y que me lo este poniendo en los datos correspondientes antes mencionados para luego aplicar este codigo:

Sub guardaCopiareporte()
  Sheets("REPORTE DE SERVICIOS").Select
'controla si existe hoja COPIA sino la crea
Dim x As Byte
For Each sh In Sheets
If sh.Name = "RESPALDO REPORTE" Then x = 1
Next sh
'si la variable esta en 0 debe crear la hoja
If x = 0 Then
    Sheets.Add after:=Sheets(Sheets.Count)
    ActiveSheet.Name = "RESPALDO REPORTE"
    'vuelvo a mi hoja
    Sheets("REPORTE DE SERVICIOS").Select
End If
'copio el rango de datos en la misma ubicaciòn de hoja copia
ActiveSheet.Range("B4:I18").Copy Destination:=Sheets("RESPALDO REPORTE").Range("F2")
'quito formulas de la copia
Sheets("RESPALDO REPORTE").Select
ActiveSheet.Range("B4:I18").Select
Selection.Copy
Selection.PasteSpecial xlValues
'asigno ruta y nombre para la copia. el nombre concatena fecha y nro
ruta = ThisWorkbook.Path & "\RESPALDO REPORTE\"
nbrecopia = Format(Range("F4"), "yyyymmdd") & "_" & Range("I6")
'creo libro como copia de esta hoja
ActiveSheet.Copy
Set wb = ActiveWorkbook
With wb
'le agrego las instrucciones de bloqueo y protección
    '.Sheets(1).Columns("J:K").Hidden = True      'OPCIONAL: ocultar col
    '.Sheets(1).Columns("E:I").EntireColumn.AutoFit  'ajusta ancho de col
    'vista Pantalla completa
    Application.DisplayFullScreen = True
    'se oculta la barra de fórmulas
    Application.DisplayFormulaBar = False
    With ActiveWindow
        'se ocultan las pestañas de las hojas
        .DisplayWorkbookTabs = True
        'se quitan los encabezados y líneas de las celdas
        .DisplayHeadings = False
        .DisplayGridlines = False
    End With
    'se bloquean todas las celdas y se protege la hoja
    .Sheets(1).Cells.Locked = True
    .Sheets(1).Protect password:="1234"
'contemplo posible error en el guardado
On Error GoTo sinCopia
'contemplo posible error en el guardado
On Error GoTo sinCopia
'guardamos el libro en la misma carpeta, subcarpeta COPIAS
.SaveAs ruta & nbrecopia & ".xlsx"
On Error GoTo 0
'cerramos el nuevo libro
.Close
End With
'se libera el objeto
Set wb = Nothing
'limpio la hoja COPIA
ActiveSheet.Cells.Clear
ActiveSheet.Range("A1").Select
'vuelvo a la hoja FACTURA para seguir con el proceso
Sheets("NUEVO SERVICIO A DOMICILIO").Select
Exit Sub
sinCopia:
MsgBox "Fallo el guardado. Guarda la hoja COPIA manualmente y luego borra su contenido.", , "ERROR"
'vuelvo a la hoja FACTURA para seguir con el proceso
Sheets("NUEVO SERVICIO A DOMICILIO").Select
End Sub

Ya realizado esto... Ya me haya creado una base de datos de la factura para que la proxima vez.

Los datos que hayan cambiando en la hoja1 se pongan en la hoja2 tal cual. Y este al poner solo el numero en el formulario este me busque los datos que anteriormente se hayan grabado..

1 Respuesta

Respuesta
1

Envíame tu archivo con el formulario de captura.

Explícame esto:

"Y este al poner solo el numero en el formulario este me busque los datos que anteriormente se hayan grabado.. "

¿A cuál número te refieres?

¿El formulario te va a buscar los datos en el archivo de respaldo o en dónde los va a buscar?

Esto es parte de la misma pregunta o es otra funcionalidad del formulario, una cosa es que busque reciba la información y la pase a la hoja; ¿Y otra es buscar los datos y ponerlos en dónde? ¿En el mismo formulario? ¿Tu intención es mostrarlos en el formulario para consulta o para hacer cambios?

Espero tus comentarios

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “jairo retorno” y el título de esta pregunta.

.

Ya envíe el correo

Te anexo la parte para la factura y abrir el formulario, los cambios están a partir de donde dice 'Por. Dante Amor

Sub incrementarnumero()
If Not IsError(Range("Q11")) And Not IsError(Range("O27")) Then
    If Range("Q11") <> "" And Range("O27") <> "" Then
        If Range("O27") = "" Or Range("Q11") = "" Or _
            Not IsNumeric(Range("O27")) Or Not IsNumeric(Range("Q11")) Then
            MsgBox "Ingresaste letras en campos de numeros", vbOKOnly + vbExclamation, "ERROR DE VALIDACIÓN DE DATOS"
            Exit Sub
        End If
        Application.ScreenUpdating = False
        Range("I16").Select
        ActiveWindow.SmallScroll Down:=-24
        Range("F2:Q29").Select
        ActiveSheet.PageSetup.PrintArea = "$F$2:$Q$29"
        'ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True, _
        IgnorePrintAreas:=False
        '
        'Por.Dante Amor
        '
        factura = MsgBox("Quieres la factura", vbYesNo + vbQuestion, "ADVERTENCIA")
        If factura = vbNo Then
            Exit Sub
        Else
            Set h1 = Sheets("NUEVO SERVICIO A DOMICILIO")
            Set h2 = Sheets("FACTURA")
            h2.Select
            With UserForm6
                .nomcli = h2.[G10]
                .Show
            End With
        End If
        '
        'Por.Dante Amor
        '
        Dim respuesta As Variant
        respuesta = MsgBox("la impresion fue correcta?", vbYesNo + vbExclamation, "ADVERTENCIA")
        If respuesta = vbYes Then
            estado = 1
            MsgBox "Se procede a guardar respaldo y se prepara para un NUEVO SERVICIO.", , "ATENCION"
            Call guardaCopia
            ActiveSheet.Unprotect password:="28021990"
            'Rows("11:11").Select
            Range("Q11").Select
            Selection.Locked = True
            Selection.FormulaHidden = False
            'Range("B11").Activate
            'Selection.EntireRow.Hidden = True
            Sheets("NUEVO SERVICIO A DOMICILIO").Protect password:="28021990"
        End If
        If respuesta = vbNo Then
            ActiveSheet.Unprotect password:="28021990"
            Range("Q11").Select
            Selection.Locked = True
            Selection.FormulaHidden = False
            Sheets("NUEVO SERVICIO A DOMICILIO").Select
            ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
                , AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
                :=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
                AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
                AllowUsingPivotTables:=True
                ActiveSheet.Protect password:="28021990"
        End If
    Else
        MsgBox "Faltan DATOS por llenar", vbCritical, "ERROR AL IMPRIMIR"
    End If
Else
    '
    MsgBox "La celdas tienen error"
    '
End If
End Sub

Te envíe mis dudas por correo

Te anexo el código para abrir el formulario

 'Por. Dante Amor
        '
        factura = MsgBox("Quieres la factura", vbYesNo + vbQuestion, "ADVERTENCIA")
        If factura = vbNo Then
            Exit Sub
        Else
            Set h1 = Sheets("NUEVO SERVICIO A DOMICILIO")
            Set h2 = Sheets("FACTURA")
            h2.Select
            With UserForm6
                .telcli = h2.[Q11]
                .Show
            End With
        End If
        '
        'Por. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas