INSERTAR FILA (MACRO) CON LAS FORMULAS DE LA FILA QUE LE ANTECEDE

20/06/2006 - 17:11 por CARLOS CARNERO | Informe spam
INSERTAR FILA (MACRO) CON LAS FORMULAS DE LA FILA QUE LE ANTECEDE

Muy buena a todos, un servicio: En Excel 97 tengo una hoja protegida
donde las columnas (2) que contienen formulas están protegidas todas
esas celdas y las otras columnas no lo están. Pero deseo insertar fila
(s) de manera que copie sólo las formulas de la fila que le antecede
(podría ser una a una cada fila), de manera que siempre mantenga
protegida a las columnas que contienen dichas formulas.

He intentado con una macro, pero lamentablemente me realiza la
operación en la celda donde hice la macro, pero lo que yo deseo es
donde se ubique el cursor, ahí realizar dicha macro. Además de ello
cuando vuelvo a aperturar el libro, la macro pide la contraseña para
desprotegerla.

Les pido por favor me auxilien con este tema y agradeciendo de antemano
su atención.

Saludos desde el Perú,

P.D. Esta es la sintaxis:

Sub Imagen538_AlHacerClic()
'
' Imagen538_AlHacerClic Macro
' Macro grabada el 20/06/2006 por
'

'
Range("D27").Select
ActiveSheet.Unprotect
Selection.EntireRow.Insert
Range("A26:L26").Select
Range("L26").Activate
Selection.Copy
Range("A27").Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=False
Range("B27:I27").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("A26").Select
Selection.AutoFill Destination:=Range("A26:A29"),
Type:=xlFillDefault
Range("A26:A29").Select
Range("B27").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
End Sub

Preguntas similare

Leer las respuestas

#11 CARLOS CARNERO
22/06/2006 - 22:14 | Informe spam
Hola Hector: carambas estoy muy avergonzado por causarte molestias.
Mirá ya me di cuenta como opera el error, era mio al colocar el cursor
en la celda activa (lo estaba haciendo en la columna B), por ello es
que me sumaba el código y no el correlativo que se encontraba en la
columna.

Muchas gracias HECTOR & KL por tanta generosidad.

Un abrazo desde el Perú,



CARLOS CARNERO ha escrito:

Hola Hector: Disculpa mi insistencia pero no logro aún mi objetivo.
Por favor dame una mano con este tema.

Gracias,

Carlos Carnero Gálvez


CARLOS CARNERO ha escrito:

> Hola Hector: Antetodo mil disculpas quizas por no explicarme bien.
> Explicando de otro modo. Tengo entre las columnas A a la K los
> siguientes encabezados respectivamente: ITEM CODIGO GENERO DEL
> ARCHIVO TIPO DE DCMTO AÑO MES Del Al UBICACIÓN OBSEVACIONES IDEM.
> Como se puede apreciar es una base de datos de un Archivo. Entonces en
> la columna A (la del Item) cada fila representa un número correlativo
> ascendente con respecto a la fila inferior (Ej. Fila 5= 2, Fila 6=3) y
> para ello uso esta formula condicional =SI(B5<>"",A4+1,"") siendo A4=1.
>
>
> Este es el archivo
>
> ITEM CODIGO GENERO DEL ARCHIVO TIPO DE
> DCMTO AÑO MES Del Al UBICACIÓN OBSEVACIONES IDEM
> 2 B014.03.0001 VENTAS BOLETA 014 2003 JUNIO 0000010 ALCANFORES
> ACTIVO 2
> 3 B017.02.0001 VENTAS BOLETA
> 017 2002-2003 AGOSTO/DICIEMBRE 0000001 0000211 ALCANFORES ACTIVO 3
> 4 B017.04.0001 VENTAS BOLETA
> 017 2004 ENERO/DICIEMBRE 0000212 0000387 ALCANFORES ACTIVO 4
> ALCANFORES ACTIVO
> 5 B017.05.0001 VENTAS BOLETA
> 017 2005 ENERO/DICIEMBRE 0000389 0000679 ALCANFORES ACTIVO FALTA 388 5
> 6 B017.06.0001 VENTAS BOLETA
> 017 2005-2006 NOV/ABR 0000680 0000780 ALCANFORES ACTIVO 6
>
> Finalmente lo que debe operar la macro es que cuando inserte una fila
> autosume + 1, el valor del item anterior. Y la fila subsiguiente
> continue con el correlativo correspondiente.
>
> Gracias y saludos desde el Perú,
>
> P.D. Trate de enviarte el archivo pero al parecer revoto. Si no tienes
> ningún inconveniente y te es posible enviame tu correo a
>
>
>
> Héctor Miguel ha escrito:
>
> > hola, Caros !
> >
> > > ... vuelvo al punto donde se copia efectivamente la formula de la fila anterior y aún se mantiene congelada la fila que le continua.
> > > ... la formula de CONTARA... va ha estar reflejado en una sola celda... lo que busco es que el insertar fila sea en la celda activa.
> > > ... la anterior sintaxis era la mas aproximada a excepcion que esta sumatoria no deberia darse en la columna B, sino en la A.
> >
> > hay 'algo' [como] que no acabo de entender :-(
> >
> > 1) el codigo expuesto [punto b anterior], al final de cuentas, lo que hace es [y segun yo, es lo que solicitas ?]...
> > a) inserta una fila EN [o a partir de] -> la celda activa
> > b) copia [en la fila insertada] la fila inmediata superior/anterior [con todo y formulas]
> > c) 'limipa' [en la fila insertada] las columnas 'B:I'
> >
> > 2) la formula de 'auto-numeracion' => en la columna 'A' [segun el punto a anterior]...
> > -> 'mantiene' el orden consecutivo de numeracion -> en cuanto escribes 'algo' en su columna 'B'
> > -> recuerda que acaba de ser 'limpiado' el rango de las columnas 'B:I' [lo cual evita la necesidad del 'AutoFill' por codigo]
> > -> si NO quieres 'esperarte' a poner algo en la columna 'B'... cambia la formula propuesta [desde la celda inicial] p.e.
> > de: -> =contara($b$7:b7)
> > a. -> =filas($b$7:b7)
> >
> > si algo de lo que estoy suponiendo [y probando] no esta de acuerdo con alguna otra 'realidad'...
> > comentas algun detalle mas... 'significativo' ?
> > saludos,
> > hector.
> >
> > __ la consulta anterior __
> > > > ... a excepcion que la columna que debe sumar es la "A" y no la "B"...
> > > > ... A, la primera es una sumatoria condicional y es en donde de operar la macro
> > > > =SI(B18<>"",A17+1,"")
> > > >> y luego deseas 'limpiar' las columnas -supongo- NO-formulas: 'B:I' -?-
> > > >> y que 'inluya' hasta la fila 29 [o la que vaya hasta 'equis'-momento] -???-
> > > > Asi que incluya hasta n filas [...]
> > >
> > > si alcanzo a 'interpretar' [bien] el sentido de la formula de 'auto-numeracion' an la columna 'A'... -?-
> > >
> > > -> podrias 'aligerar' el codigo sin la necesidad del 'AutoFill'
> > > [ya que no intervendria la 'perdida' de la referencia en la formula por la fila 'insertada']
> > > y la 'carga' de n_filas con la funcion si-condicional para la auto-numeracion... SI...
> > >
> > > a) cambias la formula +/- a la siguiente -> suponiendo que la primer celda 'auto-numerable' fuera 'A7']...
> > > =contara($b$7:b7) [y la copias/arrastras/... hasta las n_filas 'ocupadas actualmente'] :)) Y...
> > >
> > > b) 'recortas' las lineas de codigo [que inserta una fila] +/- a las siguientes...
> > > Sub Imagen538_AlHacerClic()
> > > With ActiveCell
> > > .Offset(-1).EntireRow.Copy
> > > Cells(.Row, 1).Insert xlDown
> > > Cells(.Row - 1, 2).Resize(, 8).ClearContents
> > > End With
> > > End Sub
Respuesta Responder a este mensaje
#12 Héctor Miguel
23/06/2006 - 03:36 | Informe spam
hola, Carlos !

... ya me di cuenta como opera el error, era... al colocar el cursor en la celda activa (lo estaba haciendo en la columna B)
por ello es que me sumaba el codigo y no el correlativo que se encontraba en la columna...



[segun yo]... al codigo de la propuesta no le 'afecta' cual sea 'la columna' -> de la celda activa, ya que siempre...
-> se inserta la fila desde la columna 1
-> se 'limpian' 8 columnas iniciando desde la columna 2 o sea las columnas 'B:I'
-> lo que 'hace' el codigo... te lo pongo como comentarios en el mismo ;)

Sub Imagen538_AlHacerClic()
With ActiveCell ' se marca la celda activa como 'parametro de partida'
.Offset(-1).EntireRow.Copy ' se copia la fila inmediata anterior... COMPLETITA
Cells(.Row, 1).Insert xlDown ' se inserta una fila 'nueva' copiando la fila anterior [con todo y formulas]
Cells(.Row - 1, 2).Resize(, 8).ClearContents ' se limpian las columnas 'B:I'
End With
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#13 CARLOS CARNERO
23/06/2006 - 16:27 | Informe spam
Claro Hector todo esta bien ahora. Como lo decía anteriormente y al no
leer bien tus apreciaciones: el error era mío porque al colocar el
cursor en la celda activa esta tendría que ser cualquier fila en la
columna A, mientras que yo erróneamente colocaba el cursor en las
filas de la columna B.

Mil gracias.

Saludos desde el Perú,




Héctor Miguel ha escrito:

hola, Carlos !

> ... ya me di cuenta como opera el error, era... al colocar el cursor en la celda activa (lo estaba haciendo en la columna B)
> por ello es que me sumaba el codigo y no el correlativo que se encontraba en la columna...

[segun yo]... al codigo de la propuesta no le 'afecta' cual sea 'la columna' -> de la celda activa, ya que siempre...
-> se inserta la fila desde la columna 1
-> se 'limpian' 8 columnas iniciando desde la columna 2 o sea las columnas 'B:I'
-> lo que 'hace' el codigo... te lo pongo como comentarios en el mismo ;)

Sub Imagen538_AlHacerClic()
With ActiveCell ' se marca la celda activa como 'parametro de partida'
.Offset(-1).EntireRow.Copy ' se copia la fila inmediata anterior... COMPLETITA
Cells(.Row, 1).Insert xlDown ' se inserta una fila 'nueva' copiando la fila anterior [con todo y formulas]
Cells(.Row - 1, 2).Resize(, 8).ClearContents ' se limpian las columnas 'B:I'
End With
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida