Saltar al contenido

Principiante en formularios vba para generar base de datos


Recommended Posts

publicado

Buenos días a la comunidad,

Soy principiante en el tema de formularios y me gustaría saber si alguien me puede ayudar con algún modelo de excel que tenga con un formulario para introducir datos y generar una base de datos.

Lo que tengo que crear es una base de datos con Ordenes de fabricación.

 

Gracias de antemano por vuestra colaboración.

publicado
En 27/8/2019 at 9:20 , JSDJSD dijo:

Hola Dinkys,  sube un ejemplo de cómo quieres que quede tu base de datos

Hola JSDJSD

Te subo un ejemplo de como quiero la base de datos. En la fila 2 he puesto los comentarios.

 

Gracias anticipadas por tu ayuda

Hacer formulario para OF.xlsm

publicado

No te preocupes, pruebalo cuando tu puedas no hay prisa lo importante es que cumpla con tus expectativas, también decirte que el agradecimiento por la ayuda recibida en este foro siempre se hace de la siguiente manera:Agradecer.gif.1a1727e9f3874ff8d538459aa016feae.gif.debf3cfb4b8b2b589e2c68dc1f2d2279.gif

publicado
Hace 16 horas, JSDJSD dijo:

Hola Dinkyshas probado el adjunto que subí ?

hola JSDJSD, lo he probado pero no me funciona. Si es eso lo que necesito

publicado
Hace 3 horas, JSDJSD dijo:

Hola Dinkys, te subo un enlace de un video para que veas el funcionamiento del formulario así como un nuevo archivo con algunas validaciones, prueba haber si cumple con lo requerido.

https://www.dropbox.com/s/hcpsfj8axtsygts/nuevo proyecto.mp4?dl=0

Hacer formulario para OF(Prueba2).xlsm 37 kB · 0 descargas

Joooooo muchísimas gracias, está genial. No se si puedo abusar de ti y que haya dos botones a parte del de guardar :

Uno para que repita los datos del último registro (porque a lo mejor el siguiente registro es todo igual menos marca y cantidad)

Otro para que borre todos los datos en el formulario, por si acaso me equivoco y así no tengo que salir y volver a entrar.

Agradecer.gif.1a1727e9f3874ff8d538459aa016feae.gif.debf3cfb4b8b2b589e2c68dc1f2d2279.gif

Millones de gracias de nuevo.?

publicado

Haber Dinkys, lo de agradecer o dar las gracias a los que te ayuden en cualquier consulta es simplemente pura cortesía, pero no se trata de copiar y pegar el gif que te puse para explicarte como se hacia, si no que en el ángulo derecho inferior hay un corazón que si te posiciones sobre el con el ratón se abren los cuatro emoticonos con los que puedes expresar las gracias, jajaja, estoy confundido y me gusta. Y sinceramente a mi me tienes confundido como bien expresa un grande del foro (Leopoldo Blancas) , primero porque no has sabido interpretar lo del agradecimiento y segundo cuando dices ** lo he probado pero no me funciona. Si es eso lo que necesito** . Bueno dicho esto lo de los botones que pides mañana te los añado al formulario.

publicado

Hola Dinkys, todavía no le encuentro mucho sentido a tu última petición sobre lo de añadir dos botones más y sobre todo lo del botón borrar, pero en bueno si eso es lo que quieres aquí lo tienes. 

Te dejo un enlace de video para que veas el funcionamiento del formulario.

https://www.dropbox.com/s/1750dwdc0lm1kgc/hacer formulario para of (prueba2).mp4?dl=0

Hacer formulario para OF(Prueba2).xlsm

publicado
Hace 7 horas, JSDJSD dijo:

Hola Dinkys, todavía no le encuentro mucho sentido a tu última petición sobre lo de añadir dos botones más y sobre todo lo del botón borrar, pero en bueno si eso es lo que quieres aquí lo tienes. 

Te dejo un enlace de video para que veas el funcionamiento del formulario.

https://www.dropbox.com/s/1750dwdc0lm1kgc/hacer formulario para of (prueba2).mp4?dl=0

Hacer formulario para OF(Prueba2).xlsm 42 kB · 1 descarga

hola @JSDJSD millones de gracias. El sentido es que tengo que meter datos uno a uno sobre partes en papel y una misma línea tiene todos los datos iguales menos uno muchas veces.

 

Gracias de corazón por las molestias que te has tomado. Estoy a tu disposición en lo que te pueda ayudar

publicado
Hace 1 hora, Antoni dijo:

 

Otra visión del tema con, prácticamente, el código de JSDJSD, al que aprovecho para felicitar por su gran avance en poco tiempo en este largo camino del interminable aprendizaje de Excel y VBA?

 

Gracias a ti, Antoni, a Gerson y otros muchos Grandes Maestros de este foro que aunque no los nombre ahora mismo que sepan que lo son, por lo menos para mi, bueno creo que en realidad deben ser para todos ya que lo están demostrando a diario en el foro, habéis sido mi inspiración en este maravilloso mundo de VBA.  Y me propuse como meta acanzar mínimo vuestro nivel y disfrutar al igual que todos vosotros compartiendo dichos conocimientos ?.

Pero reconozco que aún me queda mucho, mucho para llegaros a la altura de los talones. Gracias por alimentarnos de puro conocimiento VBA.

No quiero que ninguno de los maestros del grupo se sienta ofendido por no nombrarlos, tanto vosotros como el resto de nosotros los mortales sabemos quienes sois y tenéis que sentiros muy orgullosos por la gran labor que realizáis en el foro, no cambiéis nunca, gracias y un saludo para todos.

publicado
En 31/8/2019 at 13:23 , JSDJSD dijo:

Hola Dinkys, todavía no le encuentro mucho sentido a tu última petición sobre lo de añadir dos botones más y sobre todo lo del botón borrar, pero en bueno si eso es lo que quieres aquí lo tienes. 

Te dejo un enlace de video para que veas el funcionamiento del formulario.

https://www.dropbox.com/s/1750dwdc0lm1kgc/hacer formulario para of (prueba2).mp4?dl=0

Hacer formulario para OF(Prueba2).xlsm 42 kB · 1 descarga

 

En 1/9/2019 at 20:56 , Antoni dijo:

Otra visión del tema con, prácticamente, el código de JSDJSD, al que aprovecho para felicitar por su gran avance en poco tiempo en este largo camino del interminable aprendizaje de Excel y VBA?

Hacer formulario para OF(Prueba2) (1).xlsm 51 kB · 9 descargas

 

En 1/9/2019 at 22:31 , JSDJSD dijo:

Gracias a ti, Antoni, a Gerson y otros muchos Grandes Maestros de este foro que aunque no los nombre ahora mismo que sepan que lo son, por lo menos para mi, bueno creo que en realidad deben ser para todos ya que lo están demostrando a diario en el foro, habéis sido mi inspiración en este maravilloso mundo de VBA.  Y me propuse como meta acanzar mínimo vuestro nivel y disfrutar al igual que todos vosotros compartiendo dichos conocimientos ?.

Pero reconozco que aún me queda mucho, mucho para llegaros a la altura de los talones. Gracias por alimentarnos de puro conocimiento VBA.

No quiero que ninguno de los maestros del grupo se sienta ofendido por no nombrarlos, tanto vosotros como el resto de nosotros los mortales sabemos quienes sois y tenéis que sentiros muy orgullosos por la gran labor que realizáis en el foro, no cambiéis nunca, gracias y un saludo para todos.

Genial  @JSDJSD  @Antoni y a todos los que me habeis ayudado. La última versión es una pasada. Millones de gracias

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.