Saltar al contenido

Manejo Optimo en Llenado de Formulario Exogena


vag24

Recommended Posts

publicado

Tengo 2 hojas de excel

1 Tengo el Formato 1 de Información Exogena, es una hoja Excel

2 Tengo la Tabla de equivalencia, con la que se llena el formato 1

he utilizado las siguientes formula:

=SI(B2='[Copia de Equivalencias EXOGENA-PUC.xls]PUC'!$B$4;'[Copia de Equivalencias EXOGENA-PUC.xls]PUC'!$D$4)

=BUSCARV(B3;'[Copia de Equivalencias EXOGENA-PUC.xls]PUC'!$B$2:$B$576;2)

sin el resultado esperado, el cual es llenar la columna de CONCEPTO del Formato 1 de Información Exogena

agradezco su colaboración

publicado

Hola Virginia, tendrás 2 hojas de excel, pero aquí no veo ninguna, tendrás que subirlas para intentar ayudarte.

Saludos, Germán.

publicado

Hola Virginia, tendrás que intentar explicarte mejor, ya que aun viendo los dos archivos no tengo muy claro lo que necesitas, ya que comentas que la intención es llenar CONCEPTO en el archivo Formato.... desde el archivo Equivalencia...., pero no veo que coincidad los valores de uno y otro, de todas formas y viendo tus fórmulas te comento. . .

=SI(B2='[Copia de Equivalencias EXOGENA-PUC.xls]PUC'!$B$4;'[Copia de Equivalencias EXOGENA-PUC.xls]PUC'!$D$4)[/CODE]

. . . en el archivo formato.... veo que B2=SALARIOS pero en el archivo Equivalencia..... no veo que exista ese valor por ninguna parte, por lo tanto no te puede devolver absolutamente nada, por lo que parece ser que algo falta por explicar.

Y en la fórmula . . .

[CODE]=BUSCARV(B3;'[Copia de Equivalencias EXOGENA-PUC.xls]PUC'!$B$2:$B$576;2)[/CODE]

. . . además de tener el mismo problema anterior, al utilizar la función BUSCARV solo buscas el valor de B3 en el rango B2:B576 es decir solo una columna, pero en el indicador de columnas pones 2, con lo cual no te devolverá nada, ya que solo tiene una columna el rango, para que tenga 2 tendrías que haber puesto B2:C576, para que devuelva el valor de la columna C, y así sucesivamente.

Espero tus comentarios y explicaciones, si no será complicado ayudarte.

Saludos, Germán.

publicado

Gracias, intente cambiar la formula a 2 columnas pero nada amigo, gracias te envio como quedo los arhivos

que deseo? deseo que se llene la columna de concepto en la hoja Formato-1

te envio nuevamente el archivo con los datos cambiado y lo logrado, no se si estoy cerrada, me da rabia, cuando no logro algo que se, que se puede hacer

vir.zip

publicado

Claro, no encuentra nada, porque el numero 51050605 con 8 números no está en Equivalencia..... que por lo que veo el número máximo de caracteres son de 6, de ahí que no encuentre y no devuelva nada.

¿Qué está fallando entonces?

Saludos, Germán.

publicado

creia que la formula buscar si no le colcaba falso buscaba la que mas se acercaba

y borre el 06 que es la terminacion del codigo puc y no me toma el concepto sino el mismo cogio puc

- - - - - Mensaje combinado - - - - -

creia que la formula buscar si no le colcaba falso buscaba la que mas se acercaba

y borre el 06 que es la terminacion del codigo puc y no me toma el concepto sino el mismo cogio puc

- - - - - Mensaje combinado - - - - -

creia que la formula buscar si no le colcaba falso buscaba la que mas se acercaba

y borre el 06 que es la terminacion del codigo puc y no me toma el concepto sino el mismo codigo puc

- - - - - Mensaje combinado - - - - -

creia que la formula buscar si no le colcaba falso buscaba la que mas se acercaba

y borre el 06 que es la terminacion del codigo puc y no me toma el concepto sino el mismo codigo puc

- - - - - Mensaje combinado - - - - -

gracias me funciono, como te dije no veia gracias eres muy amable al escucharme

publicado

Bueno, te puede buscar algo parecidopero en el número, pero estamos hablando de más caracteres, por lo tanto de 6 a 8 caracteres son un total mínimo de 100.000 números, y eso creo no es algo parecido o semejante, ¿no crees?

Pero bueno te devuelvo el archivo con una propuesta a ver si te sirve de orientación, ¡ah! y otra cosa, en el archivo de formato1 los números están como texto, eso también te dará error, o los dos archivos lo copias como texto o como número pero ambos son incompatibles, si te fijas en tu archivo si te pones encima de una celda con esos números te sale un cuadradito de advertencia y si te colocas encima te sale un menú con opciones, una de ellas es convertir en número, que es lo que he hecho yo en el archivo que te adjunto.

Echa un vistazo y luego comenta algo, ok?

Saludos, Germán.

FORMATO-1001_VG.rar

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

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • 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.