Modificación de código -Otra más-

Hola Elsamatilde.
Nuevamente molestando.
Con respecto a la pregunta que te formulé, ¿titulada MODIFICACIÓN DE CÓDIGO y la cual trataba de? ¿Representación de imagen?, tenia otra consulta que hacerte lo que pasa es que no consideré prudente hacértela en aquella.
Se trata de lo siguiente:
¿Las celdas a seleccionar podrían estar dispersas por la hoja, ejemplo.- Celdas? ¿A3?,? ¿D6?,? ¿H6?,? ¿B20?,? ¿J20? Etc, ¿y por supuesto que al seleccionarlas me represente la imagen? Y rizándolo un poco más, ¿sería posible que una vez que tenga representada la imagen, al pulsar sobre la misma me devuelva todo al estado inicial?
Gracias anticipadas.
Un saludo.

1 respuesta

Respuesta
1
Podías haber preguntado todo en la misma ya que se trata del mismo tema.
Yo respondo puntualmente lo que me consultan (o por lo menos lo que comprendo de la consulta), ¿por eso en la anterior resolví la macro para controlar? ¿Una celda? Que contenía la lista validada y luego la imagen se coloca en celdas que tendrás que determinar al momento de escribir la rutina.
Lo que me consultas ahora tiene las siguientes variantes: se controlarán distintas celdas y se insertará la imagen sobre ellas.
De las 2 tendrás que obtener la que mejor se adapte a tus necesidades.
Private Sub Worksheet_selectionChange(ByVal Target As Excel.Range)
'2DA rutina que inserta imágenes en ubicaciones predeterminadas
Dim izq, tope As Single
If Target.Address(False, False) = "E10" Then
'opcional borrar las imágenes anteriores
ActiveSheet.Pictures.Delete
ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\home.gif").Select
tope = Range("E10").Top
izq = Range("E10").Left
Selection.ShapeRange.Top = tope
Selection.ShapeRange.Left = izq
ElseIf Target.Address(False, False) = "G15" Then
ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\blkc1.gif").Select
tope = Range("G15").Top
izq = Range("G15").Left
Selection.ShapeRange.Top = tope
Selection.ShapeRange.Left = izq
'ElseIf .... siguen las comparaciones
End If
End Sub
¿Con respecto a? ¿Dejar todo como estaba? ¿Si eso significa quitar? ¿Todas? Las imágenes insertadas, lo mejor será que agregues un botón o le asignes un atajo de teclado a la rutina siguiente:
Sub QuitaImagenes()
Dim obj As Shape
For Each obj In ActiveSheet.Shapes
If Left(obj.Name, 7) = "Picture" Then
obj.Delete
End If
Next
End Sub
Bueno, creo que con esto tendrás para un rato largo...
Nuevamente gracias.
Disculpa por la división de la consulta, consideré más prudente el dividirla ya que supuse se trataba de dos códigos diferentes, ahora ya veo que fue un error por mi parte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas