Saltar al contenido

Formulario de ingreso y modificación de registros


Blaz3k

Recommended Posts

publicado

Hola! Qué tal? Estoy intenando hacer una mini base de datos en Excel para mi trabajo (Debe ser en Excel si o si y el libro se usará para compartir) Quiero aclarar que soy principiante en tema de VBA y me manejo un poco con Macros pero no es mi fuerte, estoy aprendiendo. Solo necesito un formulario para ingresar datos (Lo cual hice un invento para que funcione ya que no puedo utilizar Tablas y luego compartir el libro) pero se me está complicando la parte donde debo buscar a los pacientes para luego agregar información, les dejo el archivo para ver si me pueden tirar unas ideas. La idea del proyecto es la siguiente: Trabajo en un Consultorio Médico que tiene su parte de Odontología, los doctores realizan sus trabajos a los pacientes, pero si hay por ejemplo, trabajos de protesis, ellos separan un poco de plata de ese dia, para cubrir el trabajo, y ese dinero es el que anotamos en esta planilla para tener un control. Pero luego ellos se llevan ese dinero para el laboratorio de odontologia, por eso necesito la opción de buscar (por profesional) y de modificar ya que luego se tiene que añadir información de qué día se llevaron el dinero, quién se lo dió, etc. Estaba intentando hacer un formulario con la información de la hoja ''Base'' pero fracasé miserablemente ajajaj. Espero haber sido claro! Saludos

 

PD: NO SÉ CUAL ES EL SEPARADOR DE ARGUMENTOS :( 

CONTROL MEC DENTAL macros.xlsm

publicado

Si, está perfecto! 😮 Lo de la fecha unicamente, se puede modificar? Generalmente sí se usa la fecha del mismo día, pero algunas veces puede que las recepcionista se olvidan de registrarlo y lo hagan otro dia

publicado

Lo que agregaría/modificaría, es en retiro de seña, si lo podes hacer de la misma manera que en el primer formulario, con la fecha de hoy y el botón al lado para elegir día. Ya que en retiro de seña va un dato tipo fecha. Edito: Estuve haciendo unas pruebas, y me encontré con que al cargar datos viejos que tenemos en otro Excel (poniendoles el número de ID en la hoja Base, columna ID) no me lo toma como un dato que haya cargado desde el formulario registro, por lo tanto no puedo modificar esa info luego, y lamentablemente hay más de 1000 registros como para cargarlo yo manualmente :( Sacando eso realmemente está excelente, te agradezco muchisimo la ayuda!

publicado

 Estuve haciendo unas pruebas, y me encontré con que, al cargar los datos que tenemos en otro Excel los cuales son necesarios (poniendoles el número de ID en la hoja ''Base''', columna ID) no me lo toma como un dato que haya cargado desde el formulario registro, por lo tanto no puedo modificar esa info luego, y lamentablemente hay más de 1000 registros como para cargarlo yo manualmente :(

publicado

El problema lo tienes por que la plantilla que subiste es diferente a la que tienes actualmente, en la cual has eliminado una columna de observaciones, OP, Estado también has cambiado la posición de varias columnas, por lo tanto el código no te puede funcionar a menos que lo adaptes, inténtalo tu mismo y en el caso de que no puedas dilo

image.gif

publicado

Sisi, tenía en cuenta eso, cuando pegué la información le agregué las columnas faltantes al archivo original, pero incluso escribiendolos en la hoja ''Base'' en el archivo que vos me hiciste (o sea, sin ingresar al paciente por medio del formulario de registro) de igual manera no me aparacen esos datos luego para buscar y/o modificar pacientes :( 

publicado

Perfecto, ahora si me permite cargarlos manualmente y se ven desde el formulario. Se lo mostré a la encargada y le pareció genial! Lo único que me hizo darme cuenta es de una sola cosa, te explico un poco el proceso, los odontólogos hacen el trabajo al paciente, digamos por ejemplo que la persona abonó un trabajo de odontología por $1000. Luego, al final de la jornada laboral, el Dr nos dice bueno, este paciente que abonó $1000, le voy a separar $300 para Postes (un tipo de procedimiento) y ahí es cuando entra en juego la planilla, las chicas tienen que anotar al paciente con la fecha, qué Dr fue, el montó que separó etc, muchas veces ese dinero queda como separado en la planilla y un par de dias o semanas después, se lo llevan los mismos doctores, con eso no habria problema, pero a veces lo separan para el laboratorio de odonto y lo ponen a nombre de ''Sabrina'' , y otras veces lo separan para la dueña que se llama ''Mayerling'' cuando ella viene todos los meses, la encargada revisa la planilla (el documento que te habia enviado por mail) y busca dónde dice ''Mayer'' para luego sumar todo que separaron para ella, y ese día llevarselo. Entonces me faltaría una manera de filtrar esos dos datos solamente :( De igual manera SUPER agradecida por la ayuda que me diste, ya me sirve un montón! 

 

Agrego: Se me ocurre a lo mejor con un cuadro de lista en el formulario de registro, asi como tiene el de los profesionales, que tengo uno separado que diga ''Mayer'' y ''Sabrina'' como opciones. Y que al usar el formulario 2 para buscar y modificar, a parte de poder filtrar por profesional, que tenga la opción de buscar si es para Mayer o Sabrina ese dinero, no sé si me explico, disculpas!

publicado
hace 27 minutos , Blaz3k dijo:

Perfecto, ahora si me permite cargarlos manualmente y se ven desde el formulario. Se lo mostré a la encargada y le pareció genial! Lo único que me hizo darme cuenta es de una sola cosa, te explico un poco el proceso, los odontólogos hacen el trabajo al paciente, digamos por ejemplo que la persona abonó un trabajo de odontología por $1000. Luego, al final de la jornada laboral, el Dr nos dice bueno, este paciente que abonó $1000, le voy a separar $300 para Postes (un tipo de procedimiento) y ahí es cuando entra en juego la planilla, las chicas tienen que anotar al paciente con la fecha, qué Dr fue, el montó que separó etc, muchas veces ese dinero queda como separado en la planilla y un par de dias o semanas después, se lo llevan los mismos doctores, con eso no habria problema, pero a veces lo separan para el laboratorio de odonto y lo ponen a nombre de ''Sabrina'' , y otras veces lo separan para la dueña que se llama ''Mayerling'' cuando ella viene todos los meses, la encargada revisa la planilla (el documento que te habia enviado por mail) y busca dónde dice ''Mayer'' para luego sumar todo que separaron para ella, y ese día llevarselo. Entonces me faltaría una manera de filtrar esos dos datos solamente :( De igual manera SUPER agradecida por la ayuda que me diste, ya me sirve un montón! 

 

Agrego: Se me ocurre a lo mejor con un cuadro de lista en el formulario de registro, asi como tiene el de los profesionales, que tengo uno separado que diga ''Mayer'' y ''Sabrina'' como opciones. Y que al usar el formulario 2 para buscar y modificar, a parte de poder filtrar por profesional, que tenga la opción de buscar si es para Mayer o Sabrina ese dinero, no sé si me explico, disculpas!

El foro es un lugar para resolver dudas y hacer consultas puntuales, no es un lugar donde se hacen trabajos gratis, tu consulta inicial ha sido resuelta con creces. 

publicado
Hace 1 hora, Antoni dijo:

El foro es un lugar para resolver dudas y hacer consultas puntuales, no es un lugar donde se hacen trabajos gratis, tu consulta inicial ha sido resuelta con creces. 

Ok, gracias! Esa no fue mi intención para nada de igual manera, yo no pedi que me lo hagan originalmente. 

publicado

Blaz3k, no malinterpretes las palabras del Maestro Antoni, solamente te da a entender que el propósito del foro es resolver dudas y consultas puntuales de proyectos que estemos desarrollando y no podamos seguir por cualquier circunstancia, y que una vez resuelta dicha consulta  si tenemos otra  hay que abrir una nueva. 

Luego entra el factor suerte y es que el que conteste tu petición se quiera tomar más tiempo y presentarte una respuesta mucho mas allá de lo solicitado, pero como ya te digo esto es como la lotería.

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.