Eliminar imagen con una macro

14/07/2006 - 18:20 por Fran | Informe spam
Necesitaria hacer una macro que cuando en la columna A aparezca una
letra C elimine una imajen que este en la columna B y en la misma fila
donde aparece la letra C.

Preguntas similare

Leer las respuestas

#6 Fran
18/07/2006 - 09:45 | Informe spam
Gracias por las esplicaciones.

Hago lo que me dices pero me sige sin funcionar, no se si tengo que
hacer algo mas. No se si para ejecutarla tengo que hacer algo o se
ejecuta automaticamente.

Te explico, yo tengo otra macro que me parece que tambien me la pasaste
tu que cuando aparece una letra "C" en alguna casilla de la columna A
elimina toda la fila donde aparece esa letra. En esa misma fila aparece
una imagen que me gustaria borrar a la vez que se borra la fila para
que no se quede la imagen en el harchivo.
Respuesta Responder a este mensaje
#7 Héctor Miguel
19/07/2006 - 01:47 | Informe spam
hola, Fran !

... me sige sin funcionar, no se si tengo que hacer algo mas... para ejecutarla... o se ejecuta automaticamente.
... tengo otra macro... que cuando aparece una letra "C" en alguna casilla de la columna A elimina toda la fila
... En esa misma fila aparece una imagen que me gustaria borrar a la vez que se borra la fila para [...]



no comentas que modificaciones/adaptaciones/ajustes/... estes usando con la macro anterior -?-
pero si se elimina la fila ANTES de eliminar los objetos que esten 'emparentados' con ella...
[lo mas seguro es que] el codigo que 'busca' las imagenes no las encuentre 'en la fila original' -?-
prueba eliminando PRIMERO la imagen [si existe] y despues la fila +/- como sigue:

en el -mismo- modulo de codigo de codigo de la hoja que contiene las imagenes ==Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Or Target.Column > 1 Then Exit Sub
If Target <> "C" Then Exit Sub
Dim Fig As Shape
For Each Fig In ActiveSheet.Shapes
If Fig.Type = msoPicture _
And Fig.TopLeftCell.Address = Target.Offset(, 1).Address _
Then Fig.Delete: Exit For
Next
Target.EntireRow.Delete
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#8 Fran
19/07/2006 - 11:38 | Informe spam
Hola otra vez,

Me he dado cuenta que la primera macro que me pásate funcionaba bien
pero el problema viene porque en la casilla donde aparece la letra "C"
tiene una condición, Ejemplo( si(A6="SI";"C";"")). Si pongo la letra
"C" manualmente si que sale pero si la pongo con una formula no, hay
alguna manera de solucionar este problema.



Gracias otra vez
Respuesta Responder a este mensaje
#9 Héctor Miguel
20/07/2006 - 00:30 | Informe spam
hola, Fran !

... la primera macro... funcionaba bien... el problema viene porque... donde aparece la letra "C" tiene una condicion
Ejemplo( si(A6="SI";"C";"")). Si pongo la letra "C" manualmente si que sale pero si la pongo con una formula no
hay alguna manera de solucionar este problema.



op1: podrias mover el codigo que elimina imagen/es-fila/s [p.e] al evento '_calculate' [en el mismo modulo de 'la hoja']
aunque supongo que resultaria en un codigo 'desgastante/machacante/...' [por su constante/permanente repeticion]

op2: podrias comentar detalles adicionales, para [tratar de] optimizar la ejecucion del codigo de eliminacion...
[p.e.] si en la formula que expones: -> SI(A6="SI";"C";"")
a) la celda 'A6' es una 'constante' que tiene 'control' sobre varias celdas donde se usa la formula
a.1) usar la variable de celdas 'dependientes' o -de plano- usar el evento '_calculate'
b) si la celda 'A6' es una 'variable' que controla -p.e.- cada celda de 'su fila'
b.1) cambiar la condicion a que la celda que se modifica sea la variable 'A6'

podria haber mas opciones [conociendo mayores detalles]

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