Excel - Macro Inserta Filas

   
Vista:

Macro Inserta Filas

Publicado por JONATHAN PINALES (89 intervenciones) el 17/06/2010 00:02:08
Saludos a todos, quisiera su ayuda si alguien me la puede proporcionar:

Tengo el siguiente código:

Sub INSERTAR_FILAS()
Dim N As Integer
N = 11
Do Until Cells(N, 43) = ""
If Cells(N, 43) <> 0 Or Cells(N, 43) <> "" Or Val(Cells(N, 43)) > 0 Then
For M = 1 To Val(Cells(N, 43))
Rows(N + 1).Select
Selection.Insert Shift:=xlDown
Next M
End If
N = N + Val(Cells(N, 43)) + 1
Loop
End Sub

Lo que hace esta macro es que me inserta renglones segun el valor de lo que aparezca como valor en las celdas de la columna 43 (AQ), es decir si en AQ8 tengo el numero 9, entonces me inserta 9 renglones, si en AQ20 tengo el numero 12 entonces me inserta 12 renglones, el único inconveniente que tengo es que me los inserta abajo del renglon dado, es decir si en AQ8 tengo el valor 4 me inserta 4 renglones a partir de la fina 9, lo que yo necesito es que los inserte arriba, es decir que me baje toda la fila hasta donde corresponda pero que me inserte los renglones que necesito (En el mismo ejemplo insertaria 4 los renglones apartir de la fila 8 quedando mi anterior valor de Q8 en Q12.

Espero haberme dado a entender y agradeciendo desde ya cualquier ayuda quedo de ustedes

Saludos a todos

Jonathan
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

RE:Macro Inserta Filas

Publicado por JuanC (1053 intervenciones) el 17/06/2010 00:08:42
... cambiando
Selection.Insert Shift:=xlDown
por
Selection.Insert

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Macro Inserta Filas

Publicado por JONATHAN PINALES (89 intervenciones) el 17/06/2010 00:29:06
Gracias por contestar, he hecho lo que me sugeriste pero no cambia nada, el codigo con el cambio:

Sub INSERTAR_FILAS()
Dim N As Integer
N = 11
Do Until Cells(N, 43) = ""
If Cells(N, 43) <> 0 Or Cells(N, 43) <> "" Or Val(Cells(N, 43)) > 0 Then
For M = 1 To Val(Cells(N, 43))
Rows(N + 1).Select
Selection.Insert
Next M
End If
N = N + Val(Cells(N, 43)) + 1
Loop
End Sub

Solo que sigue insertando en la fila de abajo y yo los necesito en la de arriba
¿¡Que estoy haciendo mal?

Saludos

John
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Macro Inserta Filas

Publicado por Gerardo (12 intervenciones) el 17/06/2010 00:18:27
Si entendi bien, tu problema es que al insertar las filas lo hace 1 coordenada en y por debajo del la celda que contiene la informacion del numero de filas que ncesitas, y tu lo que requieres es que te abra un interlineado de n cantidad de filas entre la celda que contiene el numero de renglones y la anterior.

Bueno si esto es asi, lo unico que tienes que hacer es modificar 2 cosas en tu codigo

Rows(N + 1).Select por Rows(N).Select

Selection.Insert Shift:=xlDown por Selection.Insert

quedando asi:

Sub INSERTAR_FILAS()
Dim N As Integer
N = 11
Do Until Cells(N, 43) = ""
If Cells(N, 43) <> 0 Or Cells(N, 43) <> "" Or Val(Cells(N, 43)) > 0 Then
For M = 1 To Val(Cells(N, 43))
Rows(N).Select
Selection.Insert
Next M
End If
N = N + Val(Cells(N, 43)) + 1
Loop
End Sub



El comando insertar insertara desplazando hacia abajo el renglon que tenga el foco
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Macro Inserta Filas

Publicado por JONATHAN PINALES (89 intervenciones) el 17/06/2010 00:36:02
Gracias por contestar, copié el código pero lo que hizo fué insertarme renglones en blanco encima, como yo lo deseo, solo que no se detiene sigue insertando e insertando sin detenerse y no se como corregirlo ¿Tendrá algo que ver mi versión de excel? tengo el 2007

Saludos

John
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Macro Inserta Filas

Publicado por JONATHAN PINALES (89 intervenciones) el 17/06/2010 00:57:26
A los Compañeros que tuvieron la atención de contestar les doy las gracias, he conseguido lo que necesitaba, el código quedó de la siguiente manera:

Sub INSERTAR_FILAS()
Dim N As Integer, m As Integer, k As Integer
N = 2
Do Until Cells(N, 1) = ""
If Cells(N, 2) <> 0 Or Cells(N, 2) <> "" Or Val(Cells(N, 2)) > 0 Then '
k = Cells(N, 2)
For m = 1 To k
Rows(N).Select
Selection.Insert SHIFT:=xlDown
Next m
End If
N = N + k + 1
Loop
End Sub

Por si a alguien le sirve
Saludos y nuevamente gracias

John
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Macro Inserta Filas

Publicado por mikemaik (1 intervención) el 04/04/2012 20:29:39
gracias me sirvio de mucho
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar