Insertar fila con base a los días laborados.
Tengo una lista de personas y estas pueden tener distintas novedades incapacidad, vacaciones, licencias. Hay una columna que me indica la fecha de inicio y fecha final de cada una de estas novedades que se presentan por mes, que es lo complicado del asunto que toca manualmente insertarle a cada persona un fila por cada novedad y ponerle sus días de acuerdo a cada novedad.
Esta imagen muestro un ejemplo muy sencillo de 3 personas, sin convertir es el inicial y convertido es cuando se realiza el proceso manual se inserta una fila por cada novedad con sus días.
Tengo esta código inicio que me inserta una fila en blanca abajo de cada registro.
Sub Insertar_filas()
'Definimos variables
Dim tTop, rFila, i, j As Double
'Buscamos el número de columna en el que estamos
nColum = ActiveCell.Column
'Buscamos la letra de la columna en la que estamos
lColum = Split(ActiveCell.Address, "$")(1)
'Determinamos el rango para definir la longitud del bucle for-next
Rango = lColum & ":" & lColum
'Indicamos el número de línea sobre el que comenzamos a añadir filas en blanco
tTop = 3
'Indicamos el número de filas en blanco a incluir
rFila = 1
fin = Application.CountA(ActiveSheet.Range(Rango))
For j = 2 To fin
'Si la primera celda (en este caso la 3) contiene un valor, entonces comenzamos a insertar filas
'intercaladas
If Not IsEmpty(Cells(tTop, nColum)) Then
For i = 1 To rFila
Cells(tTop, nColum).EntireRow.Insert
Next i
tTop = tTop + rFila + 1
End If
Next j
End Sub