Urgente, insertar filas para completar serie en una columna

Hola a todos

Tengo en una columna (columna D) una serie de números que son menores de 31, por ejemplo la primera serie va de 1 a 28 y debajo de esta otra de 1 a 30 y debajo de esta otra de 1 a 29 y asi sucesivamente hasta que terminan las series con celdas vacías. Lo que necesito es una macro que complete cada serie con 31 datos (todas las series de la columna).

Espero me puedan ayudar y agradezco de antemano

1 respuesta

Respuesta
1

Prueba con esta macro:

Sub ejemplo()
'por luismondelo
Range("d65000").End(xlUp).Offset(1, 0).Value = "end"
Range("d1").Select
Do While ActiveCell.Value <> "end"
If ActiveCell.Row = 1 Then GoTo salto
If ActiveCell.Value = 1 And ActiveCell.Offset(-1, 0).Value <> 31 Then
inicio = ActiveCell.Offset(-1, 0).Value
dif = 31 - ActiveCell.Offset(-1, 0).Value
For x = 1 To dif
ActiveCell.EntireRow.Insert
inicio = inicio + 1
ActiveCell.Value = inicio
ActiveCell.Offset(1, 0).Select
Next
End If
salto:
ActiveCell.Offset(1, 0).Select
Loop
If ActiveCell.Value = "end" And ActiveCell.Offset(-1, 0).Value <> 31 Then
ActiveCell.ClearContents
inicio = ActiveCell.Offset(-1, 0).Value
dif = 31 - ActiveCell.Offset(-1, 0).Value
For y = 1 To dif
inicio = inicio + 1
ActiveCell.Value = inicio
ActiveCell.Offset(1, 0).Select
Next
End If
ActiveCell.ClearContents
End Sub

Hola luis muchas gracias, al ejecutarla me saca un error donde dice que no coinciden los tipos y me marca la siguiente linea

dif = 31 - ActiveCell.Offset(-1, 0).Value

espero me puedas seguir ayudando

saludos

Se me olvido comentar que la columna tiene un encabezado en texto llamado SERIE, posiblemente sea por eso.

saludos

La macro está hecha con un ejemplo inventado por mi. Será mejor que me mandes tu archivo con esa columna de datos para que pueda ayudarte mejor

[email protected]

En el siguiente enlace te dejo tu archivo con la solución

http://share.cx.com/yvmbX3

No olvides finalizar la consulta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas