¡Ayuda plis! Coger foto de formulario según variable e insertarla en una celda
Publicado por Roberto (28 intervenciones) el 17/06/2020 12:39:20
Hola a tod@s
Llevo unos días con éste tema y no logro darle una solución, había conseguido insertar la imagen, pero luego hice modificaciones y ya no recuerdo como lo había hecho
Cabe destacar que uso copias y pegas y no tengo mucha idea, así que en realidad no se muy bien lo que hago y como lo hago
tengo el siguiente código:
Como digo, son códigos encontrados por la red que intento adaptar de mi manera, a veces lo consigo, y otras, como ahora, no
Lo que pretendo es lo siguiente:
Tengo un formulario con 8 imágenes: (fnn, fne, fee, fse, fss, fso, foo, fno). Como imaginaréis, son las imágenes de flechas apuntando a las direcciones n, s, e, o, ne, se, so y no.
En la hoja de excel, cuando cambie el valor de una celda, en la que meto un rumbo en grados, en la celda inferior se debería de incrustar la imagen correspondiente a una de esas flechas en función de ese rumbo.
Tengo una variable llamada rumbo, que coge uno de los siguientes valores (nn, ee, ss, oo, ne, se, so, no) en función de los grados introducidos en la celda "E4", que será la que ejecute todo el código.
Alguien me podría ayudar y explicar como seleccionar la flecha del formulario que corresponda con la variable rumbo, donde ya tengo almacenada la dirección, y que en función de esa dirección me seleccione la flecha que corresponde y la incruste en la celda correspondiente, que es la "E7"
Otra cosa muy importante, sería que la imagen se adapte al tamaño de la celda, que por cierto es bastante pequeña.
Espero haberme explicado bien. Un saludo y muchas gracias
Llevo unos días con éste tema y no logro darle una solución, había conseguido insertar la imagen, pero luego hice modificaciones y ya no recuerdo como lo había hecho
Cabe destacar que uso copias y pegas y no tengo mucha idea, así que en realidad no se muy bien lo que hago y como lo hago
tengo el siguiente código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Dim nn As String
Dim ne As String
Dim no As String
Dim ee As String
Dim oo As String
Dim ss As String
Dim se As String
Dim so As String
Dim rumbo As String
Dim Azimut As Single
Dim foto As String
Set KeyCells = Range("E4")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
'MsgBox "Cell " & Target.Address & " has changed"
Azi = KeyCells
If (Azi >= 0 And Azi <= 20) Then
rumbo = "nn"
ElseIf (Azi >= 21 And Azi <= 69) Then
rumbo = "ne"
ElseIf (Azi >= 70 And Azi <= 110) Then
rumbo = "ee"
ElseIf (Azi >= 111 And Azi <= 159) Then
rumbo = "se"
ElseIf (Azi >= 160 And Azi <= 200) Then
rumbo = "ss"
ElseIf (Azi >= 201 And Azi <= 249) Then
rumbo = "so"
ElseIf (Azi >= 250 And Azi <= 290) Then
rumbo = "oo"
ElseIf (Azi >= 291 And Azi <= 339) Then
rumbo = "no"
ElseIf (Azi >= 340 And Azi <= 360) Then
rumbo = "nn"
Else
MsgBox "Azimut fuera de parámetros aceptables"
End If
'MsgBox rumbo
End If
'Imagen-----------------
'Dim RutaCompleta As String
'RutaCompleta = LoadPicture(Form_Flechas & rumbo)
'......................
' On Error GoTo Error
'Sheets("Hoja1").Select
' Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Firmas\" & ComboNombre.Text & ".jpg")
'MsgBox Image2.Picture
'MsgBox UserForm1
'MsgBox UserForm1 & ".Im_"
'MsgBox UserForm1 & ".Im_" & ApellidoPDF
'Image2.Picture = LoadPicture(UserForm1 & ".Im_" & ApellidoPDF)
' Image2.PictureSizeMode = fmPictureSizeModeStretch
'Exit Sub
'Error:
'Range("G50").Value = Me.Image2.Picture
' Sheets("Hoja1").Select
' ActiveSheet.Range("G50").Select
' SavePicture Me.Image2.Picture, "mi_logo.jpg"
' Worksheets("Hoja1").Pictures.Insert("mi_logo.jpg").Select
' With Selection.ShapeRange
' .LockAspectRatio = msoFalse
' .Top = Range("G50").Top + 5
' .Left = Range("G50").Left + 5
' .Width = 77
' .Height = 52
' End With
' Me.LabelFirma.Visible = True
' Kill "mi_logo.jpg"
'......................
Image1.Picture = LoadPicture(Form_Flechas.fnn.Picture, "fnn.jpg")
'Image1.PictureSizeMode = fmPictureSizeModeStretch
'Worksheets("Hoja1").Pictures.Insert("fnn.jpg").Select
SavePicture Image1.Picture, "mi_logo.jpg"
Worksheets("Hoja1").Pictures.Insert("mi_logo.jpg").Select
With Selection.ShapeRange
'ActiveSheet.Shapes.AddPicture(Filename:=RutaCompleta, linktofile:=msoFalse, _
'SaveWithDocument:=msoCTrue, Left:=0, Top:=0, Width:=-1, Height:=-1)
.LockAspectRatio = 0
.Top = ActiveCell.Top
.Left = ActiveCell.Left
.Width = ActiveCell.Width
.Height = ActiveCell.Height
End With
'----------------
End Sub
Como digo, son códigos encontrados por la red que intento adaptar de mi manera, a veces lo consigo, y otras, como ahora, no
Lo que pretendo es lo siguiente:
Tengo un formulario con 8 imágenes: (fnn, fne, fee, fse, fss, fso, foo, fno). Como imaginaréis, son las imágenes de flechas apuntando a las direcciones n, s, e, o, ne, se, so y no.
En la hoja de excel, cuando cambie el valor de una celda, en la que meto un rumbo en grados, en la celda inferior se debería de incrustar la imagen correspondiente a una de esas flechas en función de ese rumbo.
Tengo una variable llamada rumbo, que coge uno de los siguientes valores (nn, ee, ss, oo, ne, se, so, no) en función de los grados introducidos en la celda "E4", que será la que ejecute todo el código.
Alguien me podría ayudar y explicar como seleccionar la flecha del formulario que corresponda con la variable rumbo, donde ya tengo almacenada la dirección, y que en función de esa dirección me seleccione la flecha que corresponde y la incruste en la celda correspondiente, que es la "E7"
Otra cosa muy importante, sería que la imagen se adapte al tamaño de la celda, que por cierto es bastante pequeña.
Espero haberme explicado bien. Un saludo y muchas gracias
Valora esta pregunta


0