Añadir filas con botón macro

21/01/2009 - 10:53 por mmontes | Informe spam
Buenos días y gracias anticipadas por la ayuda.

Tengo una hoja que contiene un modelo de oferta - presupuesto en la
que en cada fila incluye una línea de producto.

Cabecera: 15 filas

Fila 16: Materiales
y a partir de la fila 17, empiezan las filas con los materiales
ofertados.


Lo que gustaría, es insertar un botón de macro, (por ejemplo en la
fila 17) columna H que ponga "añadir línea producto", y que
sencillamente, me copiase esa fila y pegase en la fila 18 (incluyendo
tambien en el copiado/pegado el botón macro, por si deseo añadir otra
fila .. la 19, con otro producto).

El problema es que, no se como referenciar la posición del botón, ya
que cuando hago un offset.xxxx me toma como referencia la última
celda donde estaba el cursor y no el botón donde hago click.

Si no me he explicado bien, hacédmelo saber y subo un ejemplo.

Gracias de nuevo.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
22/01/2009 - 01:44 | Informe spam
hola, Manuel !

Tengo una hoja que contiene un modelo de oferta - presupuesto en la que en cada fila incluye una linea de producto.
Cabecera: 15 filas Fila 16: Materiales y a partir de la fila 17, empiezan las filas con los materiales ofertados.
Lo que gustaria, es insertar un boton de macro, (por ejemplo en la fila 17) columna H que ponga "anadir linea producto"
y que sencillamente, me copiase esa fila y pegase en la fila 18
(incluyendo tambien en el copiado/pegado el boton macro, por si deseo anadir otra fila .. la 19, con otro producto)...



(creo que) no tiene sentido ir "acumulando" objetos incrustados en tu hoja
(so pena de poner en riesgo la integridad de tu archivo)

si ya tienes alguna macro "en pruebas"... seria bueno si la expones
y/o comentar como podriamos (re)crear un modelo de trabajo "igual al tuyo" ?

saludos,
hector.
Respuesta Responder a este mensaje
#2 Manuel Montes
23/01/2009 - 19:46 | Informe spam
Hola Hector:

Gracias por tu incansable ayuda :-)

Te adjunto el fichero en cuestión. Como puedes ver, en la fila 12, 17
y 23 tengo varios botones macro. Lo que necesitaría es una macro que
me ubique el rango de fila en donde está el botón, para poder añadir
una fila justo debajo, y que en esa fila tambien se copiara el botón.
Supongo que el problema radica en que el botón está en la capa de
dibujo, y el rangog que me toma es el de la última celda activa.

http://rapidshare.com/files/1883251....xlsm.html

Se te ocurre algo.

Gracias de nuevo por el esfuerzo.

Manuel


On 22 ene, 01:44, "Héctor Miguel"
wrote:
hola, Manuel !

> Tengo una hoja que contiene un modelo de oferta - presupuesto en la que en cada fila incluye una linea de producto.
> Cabecera: 15 filas Fila 16: Materiales y a partir de la fila 17, empiezan las filas con los materiales ofertados.
> Lo que gustaria, es insertar un boton de macro, (por ejemplo en la fila 17) columna H que ponga "anadir linea producto"
> y que sencillamente, me copiase esa fila y pegase en la fila 18
> (incluyendo tambien en el copiado/pegado el boton macro, por si deseo anadir otra fila .. la 19, con otro producto)...

(creo que) no tiene sentido ir "acumulando" objetos incrustados en tu hoja
(so pena de poner en riesgo la integridad de tu archivo)

si ya tienes alguna macro "en pruebas"... seria bueno si la expones
y/o comentar como podriamos (re)crear un modelo de trabajo "igual al tuyo" ?

saludos,
hector.
Respuesta Responder a este mensaje
#3 Héctor Miguel
24/01/2009 - 03:04 | Informe spam
hola, Manuel !

Te adjunto el fichero en cuestion.
Como puedes ver, en la fila 12, 17 y 23 tengo varios botones macro.
Lo que necesitaria es una macro que me ubique el rango de fila en donde esta el boton
para poder anadir una fila justo debajo, y que en esa fila tambien se copiara el boton.
Supongo que el problema radica en que el boton está en la capa de dibujo
y el rango que me toma es el de la ultima celda activa.
http://rapidshare.com/files/1883251....xlsm.html



(primero): asegurate de que los botones esten ubicados (precisamente) "dentro" de la fila correspondiente
(o sea, que NO este su borde superior "mordiendo dentro" de la fila inmediata superior, sino SOLO "en su fila")

(segundo): cambia el codigo que tienes asignado a todos los botones (incluso los nuevos que se van copiando) a:

Sub anadefila()
With ActiveSheet.Buttons(Application.Caller).TopLeftCell
.EntireRow.Copy
With Range("a" & .Row + 1)
.Insert xlDown
.Offset(-1).EntireRow.ClearContents
End With
End With
End Sub

(tercero): si te decidieras NO por usar "botones" (e incrementar el numero de objetos incrustados en la hoja)
sino por que la insercion se haga (p.e.) en la fila inmediata inferior de la fila de la celda activa
(es decir, estando seleccionada alguna celda en "la fila" que se va a insertar/copiar a la fila de abajo)
solo necesitarias modificar la primer linea de la macro +/- a lo siguiente:
de: With ActiveSheet.Buttons(Application.Caller).TopLeftCell
a: With ActiveCell

(cuarto): hay "algo" que no me acaba de gustar en el comportamiento del libro que compartes...
simplemente al pulsar repetidamente las teclas {ctrl}+{fin} causan un "crecimiento espontaneo" en el rango usado de la hoja -???-
(por si tienes tiempo de analizar a que pudiera deberse, y espero que no sea causa de -posible- corrupcion a futuro de tu archivo)

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida