Mi hoja tiembla

14/09/2008 - 22:25 por Alfonso | Informe spam
Hola a todos.
Una hoja de un libro, que llevo tiempo usando, y modificando, segun
necesidad y que tiene unas 10 filas ocultas, por primera vez al introducir
los datos (numeros) en cada una de las celdas donde corresponde, 'tiembla'
la hoja durante algo menos que un segundo y asi cada vez que meto un nuevo
dato.
Desoculto las 10 lineas y no me hace este 'tembleque'. Como nunca antes me
lo habia hecho, ni con las filas ocultas y sin ocultarlas, he guardado la
hoja, he cerrado el excel, he borrado temporales y cokies, etc como cuando
cierro el PC, y he vuelto a abrir el Libro, y en la hoja con las 10 lineas
ocultas como siempre, he introducido los datos y no me lo ha vuelto hacer.
Me gustaría saber a que puede ser debido este 'baile' de la hoja, porque
puede ser una coincidencia el que despues de cerrar y abrir nuevamente, no
vuelva a dar este problema y en el futuro se vuelva a repetir y no se me
arregle con los pasos citados.
Gracias y saludos

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
15/09/2008 - 04:37 | Informe spam
hola, Alfonso !

por los detalles que (no) expones en tu consulta, no se alcanza a "ver" alguna posible causa del comportamiento -?-

- algun codigo desgastante/repetitivo/... que consuma los recursos de que dispone excel (como la memoria) ?
p.e. en los eventos '_calculate', '_change, '_selectionchange', ... en las hojas y/o en el libro

comentas (si detectas) algun detalle mas significativo ?
saludos,
hector.

__ OP __
Una hoja de un libro, que llevo tiempo usando, y modificando, segun necesidad y que tiene unas 10 filas ocultas
por primera vez al introducir los datos (numeros) en cada una de las celdas donde corresponde, 'tiembla' la hoja
durante algo menos que un segundo y asi cada vez que meto un nuevo dato.
Desoculto las 10 lineas y no me hace este 'tembleque'.
Como nunca antes me lo habia hecho, ni con las filas ocultas y sin ocultarlas
he guardado la hoja, he cerrado el excel, he borrado temporales y cokies, etc
como cuando cierro el PC, y he vuelto a abrir el Libro
y en la hoja con las 10 lineas ocultas como siempre, he introducido los datos y no me lo ha vuelto hacer.
Me gustaria saber a que puede ser debido este 'baile' de la hoja
porque puede ser una coincidencia el que despues de cerrar y abrir nuevamente, no vuelva a dar este problema
y en el futuro se vuelva a repetir y no se me arregle con los pasos citados.
Respuesta Responder a este mensaje
#2 Alfonso
15/09/2008 - 16:41 | Informe spam
Hola Héctor.
Nos agobiamos enseguida en cuanto tenemos un problema, y aunque la mayoria
damos vueltas y vueltas probando distintos supuestos, antes de pasarlo al
foro, quiza si dejaramos algunas veces el tema para la mañana siguiente, se
pondrian la mitad de las cuestiones aqui.
La hoja SOLO 'tiembla' cuando la tengo Desprotejida, y TENGO OCULTAS 8
filas. Si no está protejida pero las Filas estan a la vista, meto los datos
(1,2,3,4...)
y no 'tiembla'. Para darte mas pistas te recuerdo que hace unos dias te
decia que esta misma hoja yo la cerraba SIN PROTEGER, y que cuando la abria
se me protegia sola, y que no sabia el porque. Me distes unas pistas y
elimine (sin pensar mas) una macro que me habias pasado hace ya tiempo y que
estaba justificada para que me abriera las filas de esta hoja segun
incorporaba nombres en otra del mismo libro (MASTERS), y que en ese momento,
se me paso. La macro es:
"Private Sub Workbook_Open()
Worksheets("TECNICOSyEXPERTOS").Protect _
Password:="malcaca0674", _
UserInterfaceOnly:=True
End Sub"
Por ello cuando me di cuenta la copie nuevamente, en el mismo modulo, en la
hoja del VB donde pone _izquierda 'Workbook' _derecha 'Open'
pero quiza esto haya afectado al libro y a esta hoja y por eso tengo este
problema. No tendría importancia si esta hoja no tuviera que estar
Protegida, porque funcionaria bien, pero al ser donde se incluyen los datos
por parte de otras personas, no puedo dejarla sin proteger.
Te adjunto las otras macros, tuyas, que tiene este libro y que funcionan
perfectamente, para que tengas todos los datos y asi puedas mejor valorarlo.
En VBAProyect en la HOJA1 (TECNICOSyEXPERTOS) abre ventana _izquierda
(Worksheet) _derecha (Calculate) esta la macro:
"Private Sub Worksheet_Calculate()
Dim Celda As Range
Application.EnableEvents = False
On Error GoTo Salida
For Each Celda In Cells.SpecialCells(xlCellTypeFormulas)
If InStr(Celda.Formula, "TomarClientes") _
Then Celda.WrapText = False: Celda.WrapText = True
Next
Salida:
Application.EnableEvents = True
End Sub"

En la HOJA2 (MASTERS) abre ventana que pone _izquierda (Worksheet) _derecha
(Change) tiene:

"Private Sub Worksheet_Change(ByVal Target As Range)

End Sub"

En la HOJA3 (MANUALES) abre ventana que pone _izquierda 'Worksheet'
_derecha 'SelectionChange' tiene:

"Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub"

Y en Modulos, en Modulo1, abre la ventana _izquierda (General) _derecha
(TomarClientes) la macro:
"Function TomarClientes(Clientes As Range, Claves As Range, Clave) As String
Dim Celda As Range, Fila As Long: TomarClientes = "": Fila = 1
For Each Celda In Claves
If Celda = Clave Then
If TomarClientes <> "" Then TomarClientes = TomarClientes & ", "
TomarClientes = TomarClientes & Clientes.Cells(Fila)
End If: Fila = Fila + 1
Next
End Function"

Espero no haber sido demasiado profuso en detalles y con esto puedas mejor
ver por donde vienen los 'tiros' y determinar una solucion.
Como siempre gracias por tu interes y el tiempo que me dedicas.
Saludos
Alfonso.
-

"Héctor Miguel" escribió en el mensaje
news:
hola, Alfonso !

por los detalles que (no) expones en tu consulta, no se alcanza a "ver"
alguna posible causa del comportamiento -?-

- algun codigo desgastante/repetitivo/... que consuma los recursos de que
dispone excel (como la memoria) ?
p.e. en los eventos '_calculate', '_change, '_selectionchange', ... en
las hojas y/o en el libro

comentas (si detectas) algun detalle mas significativo ?
saludos,
hector.

__ OP __
Una hoja de un libro, que llevo tiempo usando, y modificando, segun
necesidad y que tiene unas 10 filas ocultas
por primera vez al introducir los datos (numeros) en cada una de las
celdas donde corresponde, 'tiembla' la hoja
durante algo menos que un segundo y asi cada vez que meto un nuevo dato.
Desoculto las 10 lineas y no me hace este 'tembleque'.
Como nunca antes me lo habia hecho, ni con las filas ocultas y sin
ocultarlas
he guardado la hoja, he cerrado el excel, he borrado temporales y cokies,
etc
como cuando cierro el PC, y he vuelto a abrir el Libro
y en la hoja con las 10 lineas ocultas como siempre, he introducido los
datos y no me lo ha vuelto hacer.
Me gustaria saber a que puede ser debido este 'baile' de la hoja
porque puede ser una coincidencia el que despues de cerrar y abrir
nuevamente, no vuelva a dar este problema
y en el futuro se vuelva a repetir y no se me arregle con los pasos
citados.







avast! Antivirus: Mensaje entrante limpio.
Base de datos de Virus (VPS): 080914-0, 14/09/2008
Comprobado el: 15/09/2008 15:49:27
avast! - copyright (c) 1988-2008 ALWIL Software.
http://www.avast.com



Respuesta Responder a este mensaje
#3 Héctor Miguel
16/09/2008 - 02:53 | Informe spam
hola, Alfonso !

__ 1 __
... quiza si dejaramos algunas veces el tema para la mañana siguiente, se pondrian la mitad de las cuestiones aqui.



1) (yo creo que) si le agregamos una costumbre a consultar la ayuda en linea {F1}, seria mas de la mitad :))

__ 2 __
La hoja SOLO 'tiembla' cuando la tengo Desprotejida, y TENGO OCULTAS 8 filas.
Si no esta protejida pero las Filas estan a la vista, meto los datos (1,2,3,4...) y no 'tiembla'...
... en la HOJA1... esta la macro:
Private Sub Worksheet_Calculate()
Dim Celda As Range
Application.EnableEvents = False
On Error GoTo Salida
For Each Celda In Cells.SpecialCells(xlCellTypeFormulas)
If InStr(Celda.Formula, "TomarClientes") _
Then Celda.WrapText = False: Celda.WrapText = True
Next
Salida:
Application.EnableEvents = True
End Sub



2) a) cuando la hoja esta "protegida" (y habiendo quitado la re/proteccion en el evento '_open' solo a la interfase del usuario)
esta macro "falla" a las primeras de cambio e inmediatamente "salta" a la linea de "Salida:" (o sea, NO se ejecuta realmente)
b) cuando la hoja NO esta "protegida"... el codigo se ejecuta tantas veces como celdas donde uses la funcion (TomarClientes)
y como se puede apreciar, su objetivo es (re)dimensionar alto/ancho de la celda donde se obtienen los datos

-> prueba agregado una instruccion: Application.ScreenUpdating = False
ANTES de la linea que dice: -> Application.EnableEvents = False

saludos,
hector.
Respuesta Responder a este mensaje
#4 Alfonso
16/09/2008 - 18:36 | Informe spam
hola, Héctor.
Funciona a la perfección, no vibra nada. Perfecto como siempre.
Ahora ya solo me queda una cosa en este Libro por solucionar, que no he
conseguido aún, y que no te había vuelto a comentar.
Cuanto tengo la hoja TECNICOSyEXPERTOS protegida (tiene que estarlo), al
recibir los nombres desde la hoja MASTERS, recibe todos los nombres en sus
filas, pero a pesar de la macro que creo me diste para ello, sigue sin
abrirme las filas. En cuanto la desprotejo y toco cualquier cosa en la hoja
desde donde vienen (MASTERS), me las abre automaticamente y queda todo
perfecto, y al quitar la información en origen, cierra las filas a su tamaño
original, que tengo en 'autoajustar' para ello, quedando estupendamente la
hoja de presentación.
Si se te ocurriera algo para erradicar este problema, te lo agradeceria.
Gracias y saludos cordiales.
Alfonso
"Héctor Miguel" escribió en el mensaje
news:
hola, Alfonso !

__ 1 __
... quiza si dejaramos algunas veces el tema para la mañana siguiente, se
pondrian la mitad de las cuestiones aqui.



1) (yo creo que) si le agregamos una costumbre a consultar la ayuda en
linea {F1}, seria mas de la mitad :))

__ 2 __
La hoja SOLO 'tiembla' cuando la tengo Desprotejida, y TENGO OCULTAS 8
filas.
Si no esta protejida pero las Filas estan a la vista, meto los datos
(1,2,3,4...) y no 'tiembla'...
... en la HOJA1... esta la macro:
Private Sub Worksheet_Calculate()
Dim Celda As Range
Application.EnableEvents = False
On Error GoTo Salida
For Each Celda In Cells.SpecialCells(xlCellTypeFormulas)
If InStr(Celda.Formula, "TomarClientes") _
Then Celda.WrapText = False: Celda.WrapText = True
Next
Salida:
Application.EnableEvents = True
End Sub



2) a) cuando la hoja esta "protegida" (y habiendo quitado la re/proteccion
en el evento '_open' solo a la interfase del usuario)
esta macro "falla" a las primeras de cambio e inmediatamente
"salta" a la linea de "Salida:" (o sea, NO se ejecuta realmente)
b) cuando la hoja NO esta "protegida"... el codigo se ejecuta tantas
veces como celdas donde uses la funcion (TomarClientes)
y como se puede apreciar, su objetivo es (re)dimensionar alto/ancho
de la celda donde se obtienen los datos

-> prueba agregado una instruccion: Application.ScreenUpdating = False
ANTES de la linea que dice: -> Application.EnableEvents = False

saludos,
hector.




avast! Antivirus: Mensaje entrante limpio.
Base de datos de Virus (VPS): 080915-0, 15/09/2008
Comprobado el: 16/09/2008 17:54:34
avast! - copyright (c) 1988-2008 ALWIL Software.
http://www.avast.com



Respuesta Responder a este mensaje
#5 Héctor Miguel
16/09/2008 - 20:07 | Informe spam
hola, Alfonso !

... solo me queda una cosa... por solucionar, que no he conseguido ...
Cuanto tengo la hoja... protegida (tiene que estarlo)... a pesar de la macro... sigue sin abrirme las filas.
En cuanto la desprotejo... las abre automaticamente y queda todo perfecto
y al quitar la informacion en origen, cierra las filas a su tamano original
que tengo en 'autoajustar' para ello, quedando estupendamente la hoja de presentacion.
Si se te ocurriera algo para erradicar este problema, te lo agradeceria...



he corrido pruebas y no logro reproducir el comportamiento que describes
(que al modificar la clave solicitada no se auto-ajuste la celda donde se usa la funcion TomarClientes)

revisa como hice las pruebas y si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

probado bajo este escenario:

- hoja1 un listado de nombres y claves

- hoja2 protegida (salvo celdas donde se piden claves) y llamadas a la funcion (TomarClientes)

- se hacen cambios tanto en la hoja con el listado (hoja1) como en las celdas donde se indica cual clave se busca (hoja2)

- en el modulo de codigo del libro (ThisWorkbook)
Private Sub Workbook_Open()
Worksheets("hoja2").Protect _
UserInterfaceOnly:=True
End Sub

- en el modulo de codigo de la hoja2
Private Sub Worksheet_Calculate()
Dim Celda As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error GoTo Salida
For Each Celda In Cells.SpecialCells(xlCellTypeFormulas)
If InStr(Celda.Formula, "TomarClientes") _
Then Celda.WrapText = False: Celda.WrapText = True
Next
Salida:
Application.EnableEvents = True
End Sub

- en un modulo de codigo estandar
Function TomarClientes(Clientes As Range, Claves As Range, Clave As Range) As String
Dim Celda As Range, ListaClientes As String, Fila As Long
For Each Celda In Claves: Fila = Fila + 1
If Celda = Clave Then ListaClientes = ListaClientes & ", " & Clientes.Cells(Fila)
Next: TomarClientes = Mid(ListaClientes, 3)
End Function
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida