Prueba el siguiente codigo:
Sub test()
[D65536].End(xlUp).Offset(1, 0).EntireRow.Insert
End Sub
Saludos,
KL
"lbenaventea" <lbena...@discussions.microsoft.com> wrote in message
news:92E00186-548F-45DB...@microsoft.com...
> En la columna D, las primeras 29 filas estan llenas y quiero ir a la
> siguiente (la primera celda vacia en esa misma columna) y ahi quiero
> insertar
> una fila. Hice una macro asi:
> Range("D1").Select
> Selection.End(xlDown).Select
> Range("D30").Select
> Selection.EntireRow.Insert
> Funciona bien pero, si quiero usar la misma macro cuando, en vez de 29
> filas
> llenas tengo mas (o menos) filas llenas, la macro no sirve: no me conduce
> a
> la primera celda no-vacia (me sigue llevando a celda D30...).
> Gracias.
Sub test()
Selection.End(xlDown).Offset(1, 0).EntireRow.Insert
End Sub
Basta con colocarse en la celda 1 de la columna deseada y listo.
Pero ahora me queda una duda a mi...
Considerando el siguiente ejemplo:
N O
1 XX Z
2 XX Z
3 XX Z
4 XX
5 XX
6 XX
Yo en vez de insertar, necesito que desde O1 llegue a O4, luego se mueva a
N4 y seleccione hasta la ultima celda con datos de esa columna (en este caso
N4:N6) y lo copie a su derecha (O4:O6).
Please considerar que esta macro la utilizare siempre para las mismas
columnas, pero no para los mismos rangos de filas.
Muchas Gracias!
AndreaC
"KL" escribió:
> tu macro... no funciono (el insert row
> lo esta haciendo siempre en la segunda fila).
Probablemente te has olvidado de de cambiar la referencia [D65536] por la de
la columna que quieres escanear y seguramente la columna [D] de tu tabla
esta vacia o tiene dato solo en la primera fila. Partiendo de tu ejemplo de
abajo prueba cambiar la instruccion a lo siguiente:
[O65536].End(xlUp).Offset(1, 0).EntireRow.Insert
> Probando y probando llegue a esto:
> Sub test()
> Selection.End(xlDown).Offset(1, 0).EntireRow.Insert
> End Sub
> Basta con colocarse en la celda 1 de la columna deseada y listo.
No es lo mismo. Si usas esta instruccion deberas tener en cuenta lo
siguiente:
- tu macro encontrara la primera celda en blanco en la columna del rango
seleccionado. Es decir si tienes celdas vacias intercaladas el macro no
insertara la fila al final de la lista sino en la primera celda vacia que se
le ponga delante.
- mi macro usaba una referencia fija a la columna [D], mientras que tu
codigo parte de la posicion de la celda activa.
> Yo en vez de insertar, necesito que desde O1 llegue a O4, luego se mueva a
> N4 y seleccione hasta la ultima celda con datos de esa columna (en este
> caso
> N4:N6) y lo copie a su derecha (O4:O6).
> Please considerar que esta macro la utilizare siempre para las mismas
> columnas, pero no para los mismos rangos de filas.
Prueba esto:
Sub test1()
Dim rng As Range
Set rng = Range([O65536].End(xlUp).Offset(1, -1), _
[N65536].End(xlUp).Offset(1, 0))
rng.Copy rng.Offset(0, 1)
End Sub
o esto
Sub test2()
Range([O65536].End(xlUp).Offset(1, -1), _
[N65536].End(xlUp).Offset(1, 0)).Copy _
Range([O65536].End(xlUp).Offset(1, -1), _
[N65536].End(xlUp).Offset(1, 0)).Offset(0, 1)
End Sub
Saludos,
KL
"AndreaC" escribió:
No estoy seguro de haber entendido tu ultimo mensaje, pero si la pregunta
es: ?donde pongo la instruccion [D65536].End(xlUp).Offset(1,
0).EntireRow.Insert ?, entonces la respuesta sera: En el mismo sitio donde
ahora tienes tu codigo (borrando el tuyo por supuesto):
Range("D1").Select
Selection.End(xlDown).Select
Range("D30").Select
Selection.EntireRow.Insert
Si lo que quieres saber es como copiar un codigo hecho (o sea no creado por
la grabadora de macros) a un modulo, prueba lo siguiente:
En este caso copiamos el codigo a un modulo estandar:
1) haz clic-derecho sobre el nombre de cualquier hoja en una de las pestañas
de la parte de abajo de la ventana de Excel.
2) Elige la opcion Ver Codigo para abrir el editor VBA.
3) Una vez en el Editor VBA, ve al menu Insertar>Modulo
4) En la ventana mas grande a la derecha pega el codigo:
Sub test()
[D65536].End(xlUp).Offset(1, 0).EntireRow.Insert
End Sub
5) Pulsa Alt+F11 para volver a la hoja
6) Pulsa Alt+F8
7) Haz doble-clic sobre "Test"
Saludos,
KL
"lbenaventea" <lbena...@discussions.microsoft.com> wrote in message
news:0AF8F3D2-C1DB-4653...@microsoft.com...
> Para AndreaC y KL:
> Les agradezco aunque aun no pruebo las soluciones porque, mas que saber
> que
> instrucciones debo usar, me interesa saber como llego a ellas mediante el
> mecanismo de crear la macro con <grabar nueva macro> dando los pasos
> adecuados en la planilla. En el viejo Lotus, instrucciones Down o Up (o
> Left
> o Right) conducian a la celda correspondiente a partir de una celda
> inicial;
> en Excel, las flechas conducen siempre a esa misma celda, cualquiera sea
> la
> celda inicial.
> lbenaventea
>
>
> "AndreaC" escribio: