Dos códigos en Excel
Publicado por Txito (2 intervenciones) el 25/10/2008 03:09:04
Hola
Dispongo de un código que me permite incorporar una foto en función del nombre que ocupa una determinada celda en excel:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Foto As Object, Arriba As Double, Izquierda As Double, Ancho As Double, Alto As Double
Dim ruta As String
Application.ScreenUpdating = False
On Error Resume Next
If Not Target = [r25] Then Exit Sub
Me.Shapes("Foto").Delete
ruta = ThisWorkbook.Path & "" & [r25] & ".jpg"
Set Foto = Me.Pictures.Insert(ruta)
With Range("q25:q30")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With Foto
.Name = "Foto"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set Foto = Nothing
Application.ScreenUpdating = True
End Sub
Del mismo modo, variando las celdas necesarias obtengo otro código para cambiar las celdas tanto de la ruta del fichero como de la presentación del fichero:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Foto As Object, Arriba As Double, Izquierda As Double, Ancho As Double, Alto As Double
Dim ruta As String
Application.ScreenUpdating = False
On Error Resume Next
If Not Target = [u25] Then Exit Sub
Me.Shapes("Foto").Delete
ruta = ThisWorkbook.Path & "" & [u25] & ".jpg"
Set Foto = Me.Pictures.Insert(ruta)
With Range("t1:d8")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With Foto
.Name = "Foto"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set Foto = Nothing
Application.ScreenUpdating = True
End Sub
La cuestión es que yo quiero que se presente todo en la misma hoja, es decir que los dos códigos se encuentren en la misma hoja...
he probado varias cosas y no doy con ello...
Agradezco de antemano vuestra ayuda
Dispongo de un código que me permite incorporar una foto en función del nombre que ocupa una determinada celda en excel:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Foto As Object, Arriba As Double, Izquierda As Double, Ancho As Double, Alto As Double
Dim ruta As String
Application.ScreenUpdating = False
On Error Resume Next
If Not Target = [r25] Then Exit Sub
Me.Shapes("Foto").Delete
ruta = ThisWorkbook.Path & "" & [r25] & ".jpg"
Set Foto = Me.Pictures.Insert(ruta)
With Range("q25:q30")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With Foto
.Name = "Foto"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set Foto = Nothing
Application.ScreenUpdating = True
End Sub
Del mismo modo, variando las celdas necesarias obtengo otro código para cambiar las celdas tanto de la ruta del fichero como de la presentación del fichero:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Foto As Object, Arriba As Double, Izquierda As Double, Ancho As Double, Alto As Double
Dim ruta As String
Application.ScreenUpdating = False
On Error Resume Next
If Not Target = [u25] Then Exit Sub
Me.Shapes("Foto").Delete
ruta = ThisWorkbook.Path & "" & [u25] & ".jpg"
Set Foto = Me.Pictures.Insert(ruta)
With Range("t1:d8")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With Foto
.Name = "Foto"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set Foto = Nothing
Application.ScreenUpdating = True
End Sub
La cuestión es que yo quiero que se presente todo en la misma hoja, es decir que los dos códigos se encuentren en la misma hoja...
he probado varias cosas y no doy con ello...
Agradezco de antemano vuestra ayuda
Valora esta pregunta


0