PRoblema conmacro cuando la hoja esta bloqueada

17/10/2006 - 03:07 por Edixon | Informe spam
Hola amigos necesito de su ayuda una vez mas, tengo una macro que la
baje de este grupo ella me trae una imagen de "C:xxxxxxxxxxxxx" y me la
coloca en la hoja de excel yo tengo en esa hoja varias celdas con una
formulas muy largas lo que me obliga a tener que bloquearlas para evita
que con el uso del documento (lo usan muchas personas), las borren
accidentalmente, el problema que tengo es que cuando bloqueo la hoja
ya no me aparece la imagen que estoy llamando.

Nota: solo bloquie las celdas que tienen formulas todas las demas estan
desbloqueadas.


Gracias de antemano por su ayuda.

esta es la macro si les ayuda

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Address = "$A$1" Then Exit Sub
Dim De_donde As String, Foto As Object, _
Arriba As Double, Izquierda As Double, Ancho As Double, Alto
As Double
Application.ScreenUpdating = False
On Error Resume Next
Me.Shapes("LaFoto").Delete
De_donde = "C:\Mis imagenes\" & [a1] & ".jpg"
If Dir(De_donde) = "" Then Exit Sub
Set Foto = Me.Pictures.Insert(De_donde)
With Me.Range("f1:h21")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With Foto
.Name = "LaFoto"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set Foto = Nothing
End Sub

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
18/10/2006 - 05:52 | Informe spam
hola, Edixon !

... cuando ejecuto la macro con la hoja bloqueada... no quita la anterior [...]



las imagenes/objetos incrustados en hojas protegidas 'requieren' permiso 'explicito' para ser eliminadas :-(

op1: cuando proteges la hoja en el evento '_open' establece en 'false' la opcion de los 'drawingobjects'
[desventaja: -> el usuario los podria eliminar sin necesidad de macros] :-((

op2: puedes cambiar de 'objeto'... si en lugar de 'pasartela' eliminando y re-insertando 'shapes' [jpg o lo que sea]...
incrustas EN la hoja de calculo un control de imagen de la coleccion 'Microsoft Forms 2.0 Image'
[lo encuentras en la barra de herramientas 'cuadro de controles o dibujo en un boton que se llama 'mas controles...']
-> lo ubicas con las dimensiones que le dabas al objeto shape
-> y puedes simplificar el codigo en el evento _change' de 'esa' hoja +/- a lo siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Address = "$A$1" Then Exit Sub
Application.ScreenUpdating = False
De_donde = "CC:\Mis imagenes\" & [a1] & ".jpg"
With Me.Image1
If Dir(De_donde) = "" Then Me.Image1.Visible = False: Exit Sub
.Picture = LoadPicture(De_donde)
.PictureSizeMode = fmPictureSizeModeZoom
.Visible = True
End With
End Sub

-> de pasadita, minimizas el -posible- riesgo de corromper el archivo con tantas imagenes eliminadas/re/insertadas :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#7 Edixon
18/10/2006 - 15:16 | Informe spam
Hola Héctor lo hice pero a mi no me aparecio la foto sera que tenia
que colocar algun codigo al nuevo cuadro que coloque,
lo que hice fue borrar elcodigo que tenia antes y coloque el nuevo que
me suministraste y claro le di la dirreccion de donde tengo almacenada
las imagenes
Respuesta Responder a este mensaje
#8 AnSanVal
18/10/2006 - 19:19 | Informe spam
Hola Edixon, a mi me funciona. Sólo tuve que declarar "De_donde" (Dim
De_donde$) y cambiar la "doble C" de la ruta [hasta a Hector se le traba el
dedo :-)], por una sóla "C".

Saludos desde Tenerife.
************************
"Edixon" escribió en el mensaje
news:

Hola Héctor lo hice pero a mi no me aparecio la foto sera que tenia
que colocar algun codigo al nuevo cuadro que coloque,
lo que hice fue borrar elcodigo que tenia antes y coloque el nuevo que
me suministraste y claro le di la dirreccion de donde tengo almacenada
las imagenes
Respuesta Responder a este mensaje
#9 Héctor Miguel
18/10/2006 - 19:32 | Informe spam
hola, chicos !

AnSanVal escribio en el mensaje ...
... me funciona.
Solo tuve que declarar "De_donde" (Dim De_donde$) y cambiar la "doble C" de la ruta
[hasta a Hector se le traba el dedo :-)], por una sola "C".



:DD

[perdon]... no era mi intencion 'crear confusiones' :-(
[dentro de lo bueno de este grupo es que... NO ESTAMOS SOLOS] ;)

saludos,
hector.
Respuesta Responder a este mensaje
#10 Edixon
19/10/2006 - 05:25 | Informe spam
Gracias por su ayuda amigos realmente este grupo es bueno en el sentido
de excelencia
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida