Saltar al contenido

Insertar fila en blanco cuando cambie el valor de una columna


Recommended Posts

publicado

Hola a todos de nuevo. Yo y mis problemas. Ahora lo que necesito es insertar una fila en blanco cuando cambie el valor de una columna determinada. He creado la siguiente macro, pero no me funciona

Sub Inserta_fila()

'Insertar fila en blanco cuando cambie el valor de la columna D

Dim lngRow As Long, intRow As Long

Range("D1").CurrentRegion.Sort _

lngRow = Cells(Rows.Count, 1).End(xlUp).Row

For intRow = lngRow To 2 Step -1

If Cells(intRow, 1).Value <> Cells(intRow - 1, 1).Value Then _

Rows(intRow).Resize(1).Insert

Next intRow

End Sub

En la columna D existen valores duplicados:

101

101

101

102

102

102

111

111

111

lo que quiero es que cada vez que cambie el valor de esta columna inserte una fila en blanco.

El fichero se graba diario y siempre hay que respetar los valores del día anterior

publicado

Intenta con esto:

Sub InsRow()
Dim LR As Long, i As Long
LR = Range("D" & Rows.Count).End(xlUp).Row
For i = LR To 3 Step -1
With Range("D" & i)
If .Value <> .Offset(-1).Value Then Rows(i).Insert
End With
Next i
End Sub
[/CODE]

publicado

Buenas tardes , muchas gracias por tu ayuda Armando, pero no me funciona bien del todo, te explico:

la primera vez si hace bien la inserción, pero como te comente, al grabar el 2º día inserta una fila más en blanco donde ya hay otra:

en vez de quedar así:

1º DIA

101

101

101

1 linea en blanco

102

102

1 linea en blanco

111

111

111

2º DIA

120

120

120

1 linea en blanco

121

121

3º DIA

...

...

queda así:

1º DIA

1 linea en blanco

101

101

101

2 lineas en blanco

102

102

2 lineas en blanco

111

111

111

2º DIA

120

120

120

2 lineas en blanco

121

121

3º DIA

...

...

y va aumentando una línea mas sucesivamente, es decir, el 3º dia 3 lineas, el 4º 4 lineas, etc.

publicado

Te adjunto el archivo despues de ejecutar dos veces la macro "Vuelca_datos"

En Hoja 1 podrás encontrar unos ejemplos que he copiado. Copialos a la hoja "Hoja para volcar datos" y ejecutar la macro...

EJEMPLO.zip

Invitado sacfa
publicado

Espero te sirva este inserta una fila solo en la fechas no repetidas

Sub Macro1()

Dim valor As Date

Range("A1").Select

valor = ActiveCell.Value

ActiveCell.Offset(0, 1).Value = valor

ActiveCell.Offset(1, 0).Select

Do While ActiveCell.Value > ""

Do While ActiveCell.Value = valor

celda = ActiveCell.Address

Range("A65536").Select

ActiveCell.End(xlUp).Offset(1, 0).Value = valor

Range(celda).Offset(1, 0).Select

Loop

valor = ActiveCell.Value

celda = ActiveCell.Address

Range("b65536").Select

ActiveCell.End(xlUp).Offset(2, 0).Value = valor

Range(celda).Offset(1, 0).Select

Loop

End Sub

publicado

sacfa y alzabe, favor de respetar el punto 6 de las normas del foro que pueden leer en el link en rojo de la parte superior de esta misma pagina.

Sub Vuelca_datos()
Dim LR As Long, i As Long
LR = Range("D" & Rows.Count).End(xlUp).Row
For i = LR To 3 Step -1
With Range("D" & i)
If .Offset(-1) = "" Then Exit Sub
If .Value <> .Offset(-1).Value Then Rows(i).Insert
End With
Next i
Application.ScreenUpdating = True
End Sub[/CODE]

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.