Limpia Factura de Venta Sub limpiezafv() ActiveSheet.Range("F4,G6,C7").Value = "" ActiveSheet.Range("A10:B27,D10:D27,F30").Value = "" End Sub Imprime Factura de Venta Sub Imprimirfv() ' imprimir Macro On Error Resume Next Sheets("F.VENTA").Activate ActiveSheet.PrintPreview End Sub Guarda los datos de la Factura de Venta a la Hoja Base Private Sub CommandButton2_Click() ActiveSheet.Unprotect Password:="123" Sheets("Base").Activate Sheets("Base").Unprotect "123" Sheets("F.VENTA").Select 'rutina que graba la factura venta en hoja base 'se busca la primer fila libre en hoja Fact filalibre = Sheets("Base").Range("A1048576").End(xlUp).Row + 1 'se pasarán los datos desde la 1er fila de items ActiveSheet.Range("A10").Select fila = 10 While ActiveCell.Value <> "" 'copiamos datos fijos ajustando nro col Sheets("Base").Cells(filalibre, 3) = ActiveSheet.Range("G6") 'NRO FACT Sheets("Base").Cells(filalibre, 1) = ActiveSheet.Range("B5") 'FECHA Sheets("Base").Cells(filalibre, 4) = ActiveSheet.Range("C7") 'CLIENTE Sheets("Base").Cells(filalibre, 6) = ActiveSheet.Range("G4") 'Nº ESTADO Sheets("Base").Cells(filalibre, 7) = ActiveSheet.Range("F5") 'COD. CONT. 'otros datos del encabezado 'copiamos lista de items Sheets("Base").Cells(filalibre, 14) = ActiveCell.Offset(0, 0) 'CANT Sheets("Base").Cells(filalibre, 8) = ActiveCell.Offset(0, 1) 'COD PROD Sheets("Base").Cells(filalibre, 10) = ActiveCell.Offset(0, 3) 'DESCRIPC Sheets("Base").Cells(filalibre, 11) = ActiveCell.Offset(0, 4) 'PRECIO 'incremento la variable fila para repetir el bucle filalibre = filalibre + 1 'repito el bucle para los items siguientes ActiveCell.Offset(1, 0).Select Wend 'una vez concluída la copia debiera limpiarse el form de datos 'para el ingreso de nueva factura Call limpiezafv ActiveSheet.Protect Password:="123" Sheets("Base").Activate Sheets("Base").Protect "123" Sheets("F.VENTA").Select End Sub