¿Como insertar una imagen al pulsar un checkbox?
Hola,
me ha surgido una duda que os querría plantear:
Estoy creando una hoja de calculo y quiero que al pulsar un CheckBox, una imagen me aparezca en una hoja determinada y en un rango determinado. Lo que he conseguido es direccionarla a un rango concreto pero de la propia hoja. El codigo que he utilizado para direccionarla a la misma hoja es el siguiente:
Private Sub ckCasa10_Click()
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("imgcasa").Delete
De_donde = "c:\esquemas\casa.jpg"
If ckCasa10.Value = True Then
Set Foto = Me.Pictures.Insert(De_donde)
With Activesheet.Range("c60:q65")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With Foto
.Name = "imgcasa"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set Foto = Nothing
End If
End Sub
El Problema surge cuando quiero mandarla a el mismo rango pero de otra hoja. El codigo que utilizo es:
Private Sub ckCasa10_Click()
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("imgcasa").Delete
De_donde = "c:\esquemas\casa.jpg"
If ckCasa10.Value = True Then
Set Foto = Me.Pictures.Insert(De_donde)
With WorkSheets("Hoja2").Range("c60:q65")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With Foto
.Name = "imgcasa"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set Foto = Nothing
End If
End Sub
Espero que haya sido claro,
Muchas Gracias!!
Kilian
me ha surgido una duda que os querría plantear:
Estoy creando una hoja de calculo y quiero que al pulsar un CheckBox, una imagen me aparezca en una hoja determinada y en un rango determinado. Lo que he conseguido es direccionarla a un rango concreto pero de la propia hoja. El codigo que he utilizado para direccionarla a la misma hoja es el siguiente:
Private Sub ckCasa10_Click()
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("imgcasa").Delete
De_donde = "c:\esquemas\casa.jpg"
If ckCasa10.Value = True Then
Set Foto = Me.Pictures.Insert(De_donde)
With Activesheet.Range("c60:q65")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With Foto
.Name = "imgcasa"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set Foto = Nothing
End If
End Sub
El Problema surge cuando quiero mandarla a el mismo rango pero de otra hoja. El codigo que utilizo es:
Private Sub ckCasa10_Click()
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("imgcasa").Delete
De_donde = "c:\esquemas\casa.jpg"
If ckCasa10.Value = True Then
Set Foto = Me.Pictures.Insert(De_donde)
With WorkSheets("Hoja2").Range("c60:q65")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With Foto
.Name = "imgcasa"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set Foto = Nothing
End If
End Sub
Espero que haya sido claro,
Muchas Gracias!!
Kilian
1 Respuesta
Respuesta de caranbis
1