Insertar y eliminar filas (hoja protegida en Excel 97) con la formula que le antecede

13/10/2006 - 23:04 por CARLOS CARNERO | Informe spam
Insertar y eliminar filas (hoja protegida en Excel 97) con la formula
que le antecede.

Muy buena a todos y un gran favor: Hace un tiempo apertura el tema: "
INSERTAR FILA (MACRO) CON LAS FORMULAS DE LA FILA QUE LE ANTECEDE"
(Excel 97)
http://groups.google.com.pe/group/m...owse_th...

La sintaxis para insertar fila por fila estuvo excelente facilitada por
Hector Miguel y KL, que se refería a copiar la formula (una simple
sumatoría en la columna A que se incrementaba en una unidad), pero
resulta que ahora necesito estas dos sintaxis:

1. Insertar filas (más de una) con un solo comando
2. Eliminar fila y/o filas

Ej: Tengo de la columna "A" hasta la "J", los siguientes encabezados y
"n" filas. Pero en la columna "A" fila 3 (ó celda A3) esta suma a la
A2+1, en la celda A4 me suma A3+1, y así sucesivamente.


ITEM CODIGO GENERO DEL ARCHIVO TIPO DE
DCMTO AÑO MES Del Al UBICACIÓN OBSEVACIONES
1 B014.03.0001 VENTAS BOLETA 014 2003 JUNIO 0000010 ALCANFORES ACTIVO
2 B017.02.0001 VENTAS BOLETA
017 2002-2003 AGOSTO/DICIEMBRE 0000001 0000211 ALCANFORES ACTIVO
3 B017.04.0001 VENTAS BOLETA
017 2004 ENERO/DICIEMBRE 0000212 0000387 ALCANFORES ACTIVO
4 B017.04.0003 VENTAS BOLETA
017 2005 ENERO/DICIEMBRE 0000389 0000679 ALCANFORES ACTIVO FALTA 388
5 B017.04.0004 VENTAS BOLETA
017 2005-2006 NOV/ABR 0000680 0000780 ALCANFORES ACTIVO
6 F010.02.0001 VENTAS FACTURA
010 2002 JULIO/DICIEMBRE 0000338 0000495 ALCANFORES ACTIVO

Agradeciendoles de antemano su colaboración.

Carlos Carnero Gálvez

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
17/10/2006 - 08:02 | Informe spam
hola [de nuevo], Carlos !

perdon... me falto 'el detalle' de que la hoja esta protegida :))

si necesitas que la proteccion NO 'afecte' a tus macros ->SIN tener que [des/re]proteger la hoja<-
y puesto que la hoja ya tiene su clave asignada... puedes usar la instruccion de 'solo interfase de usuario'

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

ejemplos protegiendo la hoja al abrirse el libro sin que les afecte modificarlas por codigo...

a) en excel 97 y 2000 NO necesitas 'repetir' el password <= es 'suficiente' con poner:
en el modulo de codigo del libro ==Private Sub Workbook_Open()
Worksheets("Hoja1").Protect UserInterfaceOnly:=True
End Sub

b) a partir de excel 2002 [xp] SI es requisito 'repetir' el password :-( < en el modulo de codigo del libro ==Private Sub Workbook_Open()
Worksheets("Hoja1").Protect _
PassWord:="la MISMA cOntRaSe#a qUe lE pUsISte", _
UserInterfaceOnly:=True
End Sub

c) si se trata de varias hojas [supoiendo una misma clave para todas]...
en el modulo de codigo del objeto ThisWorkbook de tu libro [prueba data.xls] ==Private Sub Workbook_Open()
Dim Hoja As Worksheet
For Each Hoja In Worksheets(Array("hoja1", "hoja4", "hoja6"))
Hoja.Protect PassWord:="123", UserInterfaceOnly:=True
Next
End Sub

[practicamente] TODO lo que 'hagas por codigo'... pasara 'sin problemas'
Respuesta Responder a este mensaje
#7 CARLOS CARNERO
17/10/2006 - 17:28 | Informe spam
Héctor Miguel ha escrito:

... puedes usar la instruccion de 'solo interfase de usuario'

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




Hola Héctor un gusto en saludarte y a su vez agradecerte por tu
gentileza: Me parece fenomenal tu propuesta en usar sólo una imagen y
como tal la he aplicado y funciona muy bien a excepción que cuando
realizo la operación de insertar y/o eliminar filas se desprotege mi
hoja. Asi mismo debo señalarte que esta hoja tambien tiene una macro
de autofiltro con hoja protegida.

Estas son las dos sintaxis que estoy usando:

1. En relación al autofiltro con hoja protegida:
Private Sub Workbook_Open()
Dim Hoja As Worksheet
For Each Hoja In Worksheets(Array("data", "kardex", "ingresos"))
Hoja.Protect PassWord:="1234", UserInterfaceOnly:=True
Hoja.EnableAutoFilter = True
Next
End Sub

2. En referencia a la inserción y/o eliminación de filas que me has
propuesto:
Private Declare Function MonitorDeTeclas _
Lib "User32" Alias "GetAsyncKeyState" _
(ByVal Tecla As Long) As Integer
Private Function Mayusc() As Boolean
Mayusc = (MonitorDeTeclas(vbKeyShift) And &H8000)
End Function
Sub Imagen22_AlHacerClic()
Application.ScreenUpdating = False
If TypeName(Selection) <> "Range" Then Exit Sub
If Mayusc Then Selection.EntireRow.Delete: Exit Sub
Selection.EntireRow.Insert
Selection.Offset(-1).Resize(1).EntireRow.Copy _
Cells(Selection.Row, 1).Resize(Selection.Rows.Count)
Cells(Selection.Row, 2).Resize(Selection.Rows.Count, 8).ClearContents
End Sub

3. Finalmente disculpa que no lo entienda muy bien cuando te refieres a
"usar la instruccion de 'solo interfase de usuario' ". ¿Cómo procedo
hacer ello?

Una vez más reitero mi agradecimiento.

Carlos
Respuesta Responder a este mensaje
#8 Héctor Miguel
18/10/2006 - 01:24 | Informe spam
hola, Carlos !

... funciona... a excepcion que cuando realizo la operacion de insertar y/o eliminar filas se desprotege mi hoja.
... debo se#alarte que esta hoja tambien tiene una macro de autofiltro con hoja protegida...



1) la 'des-proteccion' de la hoja sucede -solo- cuando se insertan filas [no cuando se eliminan] ;)
2) cuando 'recomiendo' el evento '_open' para evitar macros que des/re/pretegen hojas [pongo al final]...
-> [practicamente] TODO lo que 'hagas por codigo'... pasara 'sin problemas'
-> efectivamente... nunca lo habia probado insertando filas en hojas 'protegidas' :-(

necesitaras volver a proteger la hoja luego de la ejecucion de la macro [solo cuando se insertan filas] p.e.

Sub Imagen914_AlHacerClic()
Application.ScreenUpdating = False
If TypeName(Selection) <> "Range" Then Exit Sub
If Mayusc Then Selection.EntireRow.Delete: Exit Sub
Selection.EntireRow.Insert
Selection.Offset(-1).Resize(1).EntireRow.Copy _
Cells(Selection.Row, 1).Resize(Selection.Rows.Count)
Cells(Selection.Row, 2).Resize(Selection.Rows.Count, 8).ClearContents
ActiveSheet.Protect PassWord:="1234", UserInterfaceOnly:=True
ActiveSheet.EnableAutoFilter = True
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#9 CARLOS CARNERO
18/10/2006 - 17:04 | Informe spam
Hola Hector un gusto en saludarte: Realmente SENSACIONAL. Muy pero muy
agradecido, estoy supercontento.

Saludos desde el Perú,

Carlos Carnero Gálvez
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida