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

#1 CARLOS CARNERO
20/06/2006 - 19:08 | Informe spam
Please Héctor Miguel ó si alguien conoce el tema:

Saludos desde el Perú,



CARLOS CARNERO ha escrito:

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
Respuesta Responder a este mensaje
#2 KL
20/06/2006 - 19:26 | Informe spam
Hola Carlos,

Tal vez algo asi (cambia la clave a la tuya):

'
Sub Imagen538_AlHacerClic()
Dim Clave As String, rng As Range
Clave = "TuClave"
Set rng = Selection.EntireRow
Application.ScreenUpdating = False
ActiveSheet.Unprotect Clave
With rng
.Copy
.Offset(.Rows.Count).Insert
With .Offset(.Rows.Count)
On Error Resume Next
.SpecialCells(xlCellTypeConstants).ClearContents
.Cells(1).Select
Application.CutCopyMode = False
On Error GoTo 0
End With
End With
ActiveSheet.Protect Clave
Application.ScreenUpdating = True
End Sub
'

Saludos,
KL
Respuesta Responder a este mensaje
#3 CARLOS CARNERO
20/06/2006 - 20:13 | Informe spam
Gracias KL por tu amable atención. Una de las formulas es una
condicional sumatoria que se encuentra en la columna A. Ej. celda A24
==> =SI(B24<>"",A23+1,"")
1° Ahora cumple con el propósito de copiar las formula de la fila que
le antecede.
2° Pero ahora me encuentro que la fila subsiguiente como la celda
A25==> =SI(B25<>"",A23+1,""), me mantiene la sumatoria tan igual como
la celda A24, es decir el A23+1, cuando lo correcto debería ser A24+1.

Mi agradecimiento de antemano,

Carlos Carnero Gálvez


KL ha escrito:

Hola Carlos,

Tal vez algo asi (cambia la clave a la tuya):

'
Sub Imagen538_AlHacerClic()
Dim Clave As String, rng As Range
Clave = "TuClave"
Set rng = Selection.EntireRow
Application.ScreenUpdating = False
ActiveSheet.Unprotect Clave
With rng
.Copy
.Offset(.Rows.Count).Insert
With .Offset(.Rows.Count)
On Error Resume Next
.SpecialCells(xlCellTypeConstants).ClearContents
.Cells(1).Select
Application.CutCopyMode = False
On Error GoTo 0
End With
End With
ActiveSheet.Protect Clave
Application.ScreenUpdating = True
End Sub
'

Saludos,
KL
Respuesta Responder a este mensaje
#4 Héctor Miguel
20/06/2006 - 20:23 | Informe spam
hola, Carlos !

... Excel 97... hoja protegida donde las columnas (2) que contienen formulas estan protegidas
... y las otras columnas no lo estan... deseo insertar fila(s) de manera que copie solo las formulas de la fila que le antecede
(podria 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... me realiza la operacion en la celda donde hice la macro
.. lo que yo deseo es donde se ubique el cursor, ahi realizar dicha macro.
Ademas... cuando vuelvo a aperturar el libro, la macro pide la contrase#a para desprotegerla...



[al parecer]... deseas insertar una fila [donde este la celda 'activa'] y copiar las formulas de la fila 'inmediata anterior' -?-
-> segun el rango expuesto, las columnas 'importantes' son 'A:L'
y luego deseas 'limpiar' las columnas -supongo- NO-formulas: 'B:I' -?-
-> lo que 'me intriga' es que tipo de formula tengas en la columna 'A'... que necesitas hacer un 'AutoFill'...
y que 'inluya' hasta la fila 29 [o la que vaya hasta 'equis'-momento] -???-
[espero que no estes usando la funcion 'fila()' con referencias 'relativas'... o algo 'parecido'] -?-

1) para que la proteccion de 'la hoja' NO afecte las acciones de tus macros [ya lo has comentado antes]...
== en el modulo de codigo del libro [ThisWorkbook] =Private Sub Workbook_Open()
Worksheets("hoja1").Protect _
PassWord:="pon aqui tu clave", _
UserInterfaceOnly:=True
End Sub

2) una posible 'alternativa' al codigo que expones...
Sub Imagen538_AlHacerClic()
With ActiveCell
.Offset(-1).EntireRow.Copy
Cells(.Row, 1).Insert xlDown
Cells(.Row - 1, 2).Resize(, 8).ClearContents
.Offset(-2).AutoFill .Offset(-2).Resize(4) ' aqui es donde tengo 'la duda' :)) '
End With
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ el codigo expuesto __
Sub Imagen538_AlHacerClic()
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
Respuesta Responder a este mensaje
#5 CARLOS CARNERO
20/06/2006 - 22:13 | Informe spam
Mi estimado Hector mil gracias por tu atención: Resulta vacanudo esta
macro a excepción que la columna que debe sumar es la "A" y no la "B".

[al parecer]... deseas insertar una fila [donde este la celda 'activa'] y copiar las formulas de la fila 'inmediata anterior' -?-


Asi es.

-> segun el rango expuesto, las columnas 'importantes' son 'A:L'


Son la A y la K, aunque esta última es sólo = 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' -?-


Asi es amigo.

-> lo que 'me intriga' es que tipo de formula tengas en la columna 'A'... que necesitas hacer un 'AutoFill'...


Descrito lineas arriba.

y que 'inluya' hasta la fila 29 [o la que vaya hasta 'equis'-momento] -???-


Asi que incluya hasta n filas

[espero que no estes usando la funcion 'fila()' con referencias 'relativas'... o algo 'parecido'] -?-


No estoy usando ninguna función fila.

Saludos desde el Perú,


Carlos Carnero Gálvez



Héctor Miguel ha escrito:

hola, Carlos !

> ... Excel 97... hoja protegida donde las columnas (2) que contienen formulas estan protegidas
> ... y las otras columnas no lo estan... deseo insertar fila(s) de manera que copie solo las formulas de la fila que le antecede
> (podria 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... me realiza la operacion en la celda donde hice la macro
> .. lo que yo deseo es donde se ubique el cursor, ahi realizar dicha macro.
> Ademas... cuando vuelvo a aperturar el libro, la macro pide la contrase#a para desprotegerla...

[al parecer]... deseas insertar una fila [donde este la celda 'activa'] y copiar las formulas de la fila 'inmediata anterior' -?-
-> segun el rango expuesto, las columnas 'importantes' son 'A:L'
y luego deseas 'limpiar' las columnas -supongo- NO-formulas: 'B:I' -?-
-> lo que 'me intriga' es que tipo de formula tengas en la columna 'A'... que necesitas hacer un 'AutoFill'...
y que 'inluya' hasta la fila 29 [o la que vaya hasta 'equis'-momento] -???-
[espero que no estes usando la funcion 'fila()' con referencias 'relativas'... o algo 'parecido'] -?-

1) para que la proteccion de 'la hoja' NO afecte las acciones de tus macros [ya lo has comentado antes]...
== en el modulo de codigo del libro [ThisWorkbook] => Private Sub Workbook_Open()
Worksheets("hoja1").Protect _
PassWord:="pon aqui tu clave", _
UserInterfaceOnly:=True
End Sub

2) una posible 'alternativa' al codigo que expones...
Sub Imagen538_AlHacerClic()
With ActiveCell
.Offset(-1).EntireRow.Copy
Cells(.Row, 1).Insert xlDown
Cells(.Row - 1, 2).Resize(, 8).ClearContents
.Offset(-2).AutoFill .Offset(-2).Resize(4) ' aqui es donde tengo 'la duda' :)) '
End With
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ el codigo expuesto __
Sub Imagen538_AlHacerClic()
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
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida