Saltar al contenido

Como mostrar una imagen de una lista


Recommended Posts

publicado

Hola estimados buenas tardes,

tengo un problema, estoy haciendo un sistema de facturación en macros y cuando hago Click en el botón Buscar Articulo me sale una lista de mis productos pero al costado quiero que salga la imagen que esta guardada en una carpeta espero su ayuda, gracias

post-104148-145877015843_thumb.png

publicado

Gracias Diego, ya lo hice pero ahora en el formulario desaparece los bordes, creo que ya quiere pero me falta algo me puedes ayudar porfavor

Private Sub LSTART_Click()


vr = ActiveWorkbook.Path: vse = Application.PathSeparator
vnf = Me.LSTART.Column(1): foto = vr & "\Productos\" & Target & ".jpg"
nofoto = vr & vse & "imagennodisponible" & ".jpg"

With Me.Image1
.Visible = True
.Height = 200
.Left = 220
.Top = 400
.Width = 300
On Error GoTo error:
.Picture = LoadPicture(foto)
.PictureSizeMode = fmPictureSizeModeZoom
GoTo ira:
error:
.Picture = LoadPicture(nofoto)
.PictureSizeMode = fmPictureSizeModeZoom
End With
ira:

End Sub[/CODE]

post-104148-145877015846_thumb.png

publicado

Ya me salio amigo, pero ahora tengo un problema tengo una imagen de 500*400 pero me sale muy grande habra alguna manera de que todas las imagenes se puedan reducir y que salga bien en el cuadro

    Productos = LSTART.List(LSTART.ListIndex) & ".jpg"
Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Productos\" & Productos)

With Me.Image1
.Visible = True
.Height = 138
.Width = 151
End With[/CODE]

post-104148-145877015848_thumb.png

publicado

siii pero justo esas imagenes lo uso para otros y la verdad q no quisiera tener 2 imagenes con diferentes medidas, sabes de alguna solucion para hacerlo en macro

gracias

publicado

aqui te dejo un código y me comentas si es lo que necesitas.

Private Sub CommandButton1_Click()
Image1.PictureSizeMode = fmPictureSizeModeStretch
End Sub[/CODE]

Saludos

publicado

Hola diego pero esto donde lo agrego si mi codigo es:

    Productos = LSTART.List(LSTART.ListIndex) & ".jpg"
Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Productos\" & Productos)

With Me.Image1
.Visible = True
.Height = 138
.Width = 151
End With[/CODE]

Gracias amigo,

publicado

En teoría cualquier procedimiento todo tiene un inicio y un fin.

entonces, lo que tienes que hacer es ajustar la imagen al momento que te aparesca en el formulario... en este caso lo agregaríaS al final.

Me explico?

publicado

Hola Diego eres un Capo, muchas Gracias Amigo, ahora una consulta si quisiera darle click a la imagen para verlo mas grande como podria hacerlo, te envio para que veas como quedo.

en la cuarta columna esta el precio pero el problema que me sale muchos decimales como podria hacer para que solo me salga 2, Gracias

LSTART.ColumnCount = 6
LSTART.AddItem
ActiveCell.Offset(0, -1).Select
LSTART.List(LSTART.ListCount - 1, 0) = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
LSTART.List(LSTART.ListCount - 1, 1) = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
LSTART.List(LSTART.ListCount - 1, 2) = ActiveCell.Value
ActiveCell.Offset(0, 2).Select
LSTART.List(LSTART.ListCount - 1, 3) = Replace(Val(ActiveCell.Value), ",", ".")
ActiveCell.Offset(0, 3).Select
LSTART.List(LSTART.ListCount - 1, 4) = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
LSTART.List(LSTART.ListCount - 1, 5) = ActiveCell.Value
ActiveCell.Offset(0, -7).Select[/CODE]

post-104148-145877015851_thumb.png

publicado

estos ya corresponde a otra consulta, ya que lo anterior creo que ya solucionaste no? pero aqui te envío el zoom de imagen

si quisiera darle click a la imagen para verlo mas grande como podria hacerlo,

Private Sub Image1_Click()
With Image1
.Height = 84
.Width = 84
End With
End Sub

Private Sub Image1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
With Image1
.Height = 150

.Width = 150

End With
End Sub
[/CODE]

Saludos

publicado

Hola diego mucha gracias por tu ayuda eres un capo,

sobre el zoom no realmente era asi solo q al dar clik en la imagen se habra un formulario con la imagen pero ya en tamaño real

Gracias

publicado

justo estaba buscando en el foro y encontre este archivo y te cuento que me salio el unico problema es que cuando le doy cerrar mi informacion mi lista se duplica, me podrias ayudar diego, muchas gracias por tu ayuda amigo. te adjunto las imagenes, no te puedo adjuntar el archivo ya que es muy pesado

post-104148-14587701615_thumb.png

post-104148-145877016153_thumb.png

publicado

aqui te dejo otra opción para que puedes mostrar en otro formulario la imagen

Private Sub Image1_Click()
UserForm2.Image1.Picture = Image1.Picture
UserForm2.Show
End Sub[/CODE]

te adjunto las imagenes, no te puedo adjuntar el archivo ya que es muy pesado

sin archivo no se puede adivinar.

Saludos

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Current Donation Goals

    • Raised 0.00 EUR of 130.00 EUR target
  • Archivos

  • Estadísticas de descargas

    • Archivos
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    4    1

  • Crear macros Excel

  • Mensajes

    • Hola, veo que tienes 365, así que esta forma funcionará   Almacen.xlsx
    • Buenos días  @LeandroA espero estes bien Tengo un caso idéntico al planteado en la siguiente pregunta: Sin embargo, a diferencia de quien planteo originalmente la pregunta al correr el código no obtengo ningún resultado podrían ayudarme a resolver este inconveniente y que al hacer click en el Botón Guardar (CommandButton3) del Formulario RCS (frmrcs) el archivo pdf quede configurado con orientación vertical, márgenes superior, inferior, derecho e izquierdo = 1 y en página tamaño carta. Si acaso influye uso Microsoft Excel LTSC MSO (versión 2209 Compilación16.0.1.15629.20200) de 64 bits Mucho le sabre agradecer la ayuda que me pueda dar  RCS PRUEBA - copia.xlsm
    • @JSDJSDCon gusto mi estimado Para la opción 1: Sub Surtirhastadondealcanse() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 4 Dim filaFin As Integer: filaFin = 7 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Else solicitudes(i) = 0 End If surtido(i) = "POR FALTA STOCK" Next i ' Surtir de acuerdo al inventario disponible For i = 1 To numClientes If solicitudes(i) > 0 Then If inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) ElseIf inventario > 0 Then surtido(i) = inventario totalSurtido = totalSurtido + inventario inventario = 0 Else surtido(i) = "POR FALTA STOCK" End If End If Next i ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = "POR FALTA STOCK" Then .Value = surtido(i) .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Para la opción 2:   Sub surtirenpartesiguales() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 13 Dim filaFin As Integer: filaFin = 16 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 Dim totalPedido As Double: totalPedido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) totalPedido = totalPedido + solicitudes(i) Else solicitudes(i) = 0 End If surtido(i) = 0 Next i ' Si hay suficiente inventario, surtir lo que el cliente pide If inventario >= totalPedido Then For i = 1 To numClientes If solicitudes(i) > 0 And inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) End If Next i Else ' Reparto base igualitario Dim baseSurtido As Long baseSurtido = Int(inventario / numClientes) For i = 1 To numClientes If solicitudes(i) > 0 Then If solicitudes(i) <= baseSurtido Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) Else surtido(i) = baseSurtido inventario = inventario - baseSurtido totalSurtido = totalSurtido + baseSurtido End If End If Next i ' Repartir sobrante restante uno por uno, respetando lo pedido Do While inventario > 0 For i = 1 To numClientes If surtido(i) < solicitudes(i) Then surtido(i) = surtido(i) + 1 totalSurtido = totalSurtido + 1 inventario = inventario - 1 If inventario = 0 Then Exit For End If Next i Loop End If ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = 0 Then .Value = "POR FALTA STOCK" .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Saludos, Diego
    • Buenos dias.  Estoy trabajando en una hoja para poder llevar un control de un pequeño almacén.  Tengo un pedido con varias líneas y "lotes" y necesito sacar las ubicaciones que coincidan con la referencia y lote que pone en el pedido. El problema viene cuando tengo la misma referencia y mismo lote en ubicaciones diferentes y necesito sacar la información en columnas diferentes. No se si  me he explicado bien, pero creo que con el ejemplo adjunto se entiende mejor. Agradecería mucho si me pudieran ayudar  Libro1.xlsx
    • Exelente solución mil gracias 
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.