Insertar filas

Hola Mauricio, ante todo espero que estés de mil maravillas, veras tengo una tabla, donde tengo registrada mis facturas, de la siguiente manera, MES, VOUCHER, FEC_FACT, NUM_FACT, DOLAR, SOLES, el problema que tengo es que cuando bajo esta tabla de otro sistema, se salta varios números de facturas y no sigue el correlativo, el motivo por el cual se salta es porque los montos de DOLAR y SOLES son cero, entonces, necesito una forma de insertar estos números de facturas, para que no se pierda el correlativo en la tabla,,, ah me olvidaba y por supuesto insertar los montos con cero, espero haber sido claro, muchas gracias por la atención prestada.
Saludos desde Lima - Perú

1 Respuesta

Respuesta
1
Es importante que tus datos estén como dices:
A1 = Mes
B1 = Voucher
C1 = Fec_Fact
D1 = Num_Fact
E1 = Dolar
F1 = Soles
y que al final de tus datos, al menos exista una fila en blanco
La macro lo que hace es ordenar por la columna DE que es donde están los números de factura, empezando por la primera, checa que sean correlativos, si no existe el siguiente numero de factura, lo inserta, y pone ceros en dolares y soles, termina hasta que encuentra una celda en blanco, saludos desde México, D.F.
Option Explicit
Public Sub AgregarFaltantes()
Dim lngNumeroFactura As Long
Range("A1").CurrentRegion.Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("D2").Activate
Application.ScreenUpdating = False
Do
lngNumeroFactura = Val(ActiveCell.Value)
If Val(ActiveCell.Offset(1, 0).Value) = lngNumeroFactura + 1 Then
ActiveCell.Offset(1, 0).Activate
Else
ActiveCell.Offset(1, 0).EntireRow.Insert
ActiveCell.Offset(1, 0).Value = lngNumeroFactura + 1
ActiveCell.Offset(1, 1).Value = 0
ActiveCell.Offset(1, 2).Value = 0
ActiveCell.Offset(1, 0).Activate
End If
Loop Until Trim(ActiveCell.Offset(1, 0).Value) = ""
Application.ScreenUpdating = True
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas