Saltar al contenido

Formulario registre/muestre Fechas programadas/reprogramadas


yameregistre

Recommended Posts

Hola a todos

En este problema espero me puedan ayudar, ya que he intentado muchas cosas y si bien es cierto algunas conseguí, otras aún no y ya llevo varios días en esto y se está volviendo un poco frustrante

 

Es un archivo que he estado creando sobre programar/reprogramar fechas

 

En el archivo adjunto muestro la lista de operaciones que debe realizar el formulario

Algunas tareas ya las conseguí automatizar, otras no

 

Las que pido ayuda es en las tareas que aún no

Pongo toda la explicación de lo que se necesita en el archivo adjunto ya que allí es más fácil de entender

 

Nuevamente agradezco bastante su colaboración

Gracias!

 

MODELO VACACIONES.xlsm

Enlace a comentario
Compartir con otras webs

Hola, a la altura de la celda N1 está el botón para invocar al userform llamado Vacaciones

La idea sería poner en el textbox el nro de contrato y con eso ya se puede programar alguna nueva vacacion por la parte izquierda del formulario

y mostrar en el listbox de la derecha sus vacaciones ya programadas

 

Luego para hacer efectiva una vacacion se selecciona la misma del listbox y se presionaria el boton hacer efectivo

Y si se desea reprogramar una vacacion se selecciona la misma del listbox y se presionaria el boton reprogramar. Eso llamaria al otro formulario llamado Reprogramar para reprogramarla

 

Esa es la idea. He resumido mi idea en este diseño minimalista, pero si hay que modificar el diseño y hacerlo mejor o separar algo en otro form, o agregar algún control no hay problema, la idea es que funcione muy bien, pero creo que quizás como esta planteado sí se puede realizar

 

Gracias por el comentario, saludos

Enlace a comentario
Compartir con otras webs

Pero es que viendo tu formulario, si elijo el contrato 4, no vencido y ya programado, en él no aparece nada. ¿Esto también te falta, o es que no es necesario?

Mejor explicar todo bien claro desde el principio,por que si no es imposible intentar hacer algo si cada vez hay que andar preguntando qué hace qué y cómo

Enlace a comentario
Compartir con otras webs

Así es @Haplox eso es lo que falta, que al elegir un numero de contrato muestre sus detalles en el ListBox, tal como lo pongo en los comentarios del Excel que adjunté a partir de la columna N

 

La idea es asi, lo voy explicando nuevamente por partes

Columnas A,B,C,D

De forma manual (directamente en cada celda, sin userform) se ingresará las columnas A,B,C,D

Es decir, se pondrá el Nro de Contrato (que es único) el empleado, el nombre del Empleado, la fecha de inicio de contrato de y la fecha de fin de ese contrato en particular.

Entonces originalmente los datos se verán así

Inicial1.jpg

 

Un empleado puede tener varios contratos en el transcurso del tiempo, no hay problema, el código de cada contrato lo diferenciará como se ve en el caso del Empleado 2, que tiene los contratos con código 2 y 8

Aquí no hay problema ni nada que resolver

 

Columna E y G

Inicial2.jpg

La columna E calculará de acuerdo a la fecha de inicio de contrato y la fecha de fin de contrato cuantos días gana de vacaciones (30 por cada año de trabajo que cumple). Estos 30 se cumplen así. por ejemplo si ingresa el 3/04/2015, sus 30 días ganados de vacaciones se dan el 2/04/2016, los 60 días el 2/04/2017, etc

Aquí no hay problema ni nada que resolver

La columna G calculará si es un Contrato de tipo VENCIDO o NO VENCIDO basándose en la fecha actual

Aquí no hay problema ni nada que resolver

 

Continuo en un momento con el siguiente mensaje

 

 

 

 

 

 

 

 

Enlace a comentario
Compartir con otras webs

Para terminar con los detalles de mi problema, y ver si es factible el ayudarme

 

Todo esto es lo que no consigo resolver aún

ListBox1

En el UserForm, si coloco el número de contrato, en ListBox1 debe mostrarse las fechas programadas del empleado que tiene asociado ese contrato si las hubiera.

En este ejemplo no las hay aún, pero la vamos a agregar luego

userform.jpg

 

Si deseo agregar la programación por Primera Vez a alguien

Si un empleado desea una vacación, primero pide la programación y se registra dicha programación en nuestro Excel mediante el UserForm donde está el Marco Programar, por el lado izquierdo (como se ve en la captura de arriba).

El procedimiento sería ingresar primero el número de contrato, y aparece el nombre del empleado debajo. Ya con eso luego se puede programar ingresar los datos en la parte inferior (Fecha inicio, Días, Fecha Final). Luego se presionaría el botón programar.

 

Por ejemplo, al Empleado 4 le hago la primera programación, por 10 días.

La columna H, I, J son ingresadas por el Userform (Fecha Inicio, Fecha Fin, Dias)

 

En la siguiente captura he marcado en un círculo los datos ingresados.

inicial3.jpg

Luego la columna F debe mostrar dicho total.

 

Si deseo confirmar la programación de alguien, es decir hacerla Efectiva

Llegado el día, si el Empleado mantiene la programación que indicó y sale de vacaciones el día pactado, entonces deben suceder dos cosas:

- El número 10 pasaría de la columna J (días programados) a la columna K (días efectivos) ya que el empleado ha hecho realidad el irse de vacaciones.

- Las columnas H,I,J deben quedarse sin el resaltado amarillo.

Para que esto suceda se selecciona la programación deseada del ListBox y se presiona el botón Hacer Efectivo. El ListBox también actualiza los cambios de la Columna J a la K

 

Si deseo reprogramar una programación

Si un empleado decide reprogramar una vacción programada (es decir, que aún no es efectiva) lo puede hacer

El procedimiento sería:

Seleccionar la programación del ListBox y presionar Reprogramar

Eso abriría el formulario Reprogramar donde se cambiaría la Fecha Inicio, Fecha Final, Días y se presiona el botón respectivo

Luego de reprogramar dicha vacación (después de presionar el botón):

- En el Excel se insertaría una nueva fila debajo de la vacación programada que se desea reprogramar. En esa fila nueva va como datos Fecha Inicio, Fecha Fin y Dias para esta reprogramacion

- La fecha programada que acabamos de reprogramar, debe perder el resaltado amarillo y debe borrarse el número de dias. Y ahora la fila con la reprogramación es la que debe tener el color de fondo fucsia en las columnas H,I,J

- Se actualiza el número de la columna F (el cual es la suma de todo lo programado/reprogramado

inicial4.jpg

 

- Se actualiza el saldo días en la columna L (el cual es la diferencia del número de la columna F para cada contrato menos la suma de todos los días de vacaciones tomados de manera efectiva en la columna k)

Agrego la foto de otro caso más grande, para el Empleado 2 por ejemplo para que se entienda todo lo anterior. En donde vemos que Saldo Días = Nro Dias (Col F) - SUMA(Todos los Dias Efectivos)

60 - 52 = 8

 

inicial5.jpg

 

 

Espero con esto y las indicaciones que puse en el Excel original, me puedan ayudar, ya avance todo lo que pude, el resto que planteo en este mensaje no consigo dar con la solución

Gracias por tomarse la molestía de leer

Les estaré eternamente agradecido por su ayuda

Saludos!

 

 

 

 

 

 

 

 

 

Enlace a comentario
Compartir con otras webs

Me estoy volviendo un poco loco... :huh:

El pasar los datos al listbox me está dando problemas y no sé por qué. Si el empleado tiene más de una línea programada, funciona bien, pero si solo tiene una, me rellena con las filas de abajo. A ver si algún gurú del foro sabe por qué:
 

Private Sub txtContrato_Change()
Dim Contrato As String
Dim fila As Integer
Dim celda As Range
Dim Rango As String

Dim InicioRango As String
Dim FinRango As String

Contrato = txtContrato.Value

For fila = 6 To 100
Set celda = Range("A:A").cells(fila, 1)
    If celda.Value <> "" And celda.Value = Contrato And Range("G" & fila).Value = "NO VENCIDO" Then
    ListBox1.Clear
    InicioRango = Worksheets("HISTORICO").cells(fila, 8).Address
    FinRango = Worksheets("HISTORICO").cells(fila, 8).End(xlDown).Row '<------ aquí me da el problema

    Rango = InicioRango & ":" & "K" & FinRango

    ListBox1.RowSource = "HISTORICO! " & Rango
    End If
Next fila

End Sub

Dejo el fichero a ver si hay solución

Por cierto ¿Tienes protegido el documento? Hay cosas que no me deja modificar

MODELO VACACIONES.xlsm

Enlace a comentario
Compartir con otras webs

No sé, por eso preguntaba. De momento parece que lo he solucionado. Te dejo el ejemplo para que veas cómo va.

Fíjate que entre contrato y contrato he tenido que dejar una LINEA VACÍA para poder discriminar rangos.

Además lo he hecho para los contratos "NO VENCIDOS", que supongo que es lo que quieres

MODELO VACACIONES.xlsm

Enlace a comentario
Compartir con otras webs

Bueno, te dejo una solución bastante funcional, según lo que te he entendido, pero está sin depurar. Faltan mensajes de error si no encuentra algo, o hay que seleccionar algo, etc.

Además creo que tienes varias cosas sin solucionar como lo suma de los días, pero eso es una simple fórmula de excel. Miralo y trabaja con él, para poder ir depurándolo según vayas encontrando fallos.

MODELO VACACIONES.xlsm

Enlace a comentario
Compartir con otras webs

Hola gracias por responder, de momento según la prueba que estoy haciendo, si ingreso un nuevo contrato manualmente en el excel llevaría el número 10, cuando cargo el userform y busco el 10, sale los datos del 1. Si busco el contrato 6 no aparecen datos. Voy a chequear el código para ver ese detalle y lo voy a seguir probando para ver qué puedo afinar y qué no y comentar luego

 

Muchas gracias

Enlace a comentario
Compartir con otras webs

Archivado

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

  • 97 ¿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
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Buenas a todos, trato de transponer o pivotar el archivo que adjunto. El archivo tiene 3 columnas ( en este caso, como pueden ser más 😞 Cód.artículo, Cód.características y Valor. El objetivo es dejar como primera columna el Cód.artículo y como fila de encabezado Cód.características, y luego cruzando datos con Valor. No sé si me he explicado bien Gracias de antemano. Libro1.xlsx
    • Hola que tal amigos programadores por favor me podrían ayudar con una macro que me genere un archivo CSV delimitado por comas, la estructura del archivo CSV no deberá llevar encabezado, los datos del archivo CSV serán obtenidos de la hoja “Datos”. En la columna A: deberá tener la clave clues que se toma de la columna B de la hoja Datos En la Columna B: el Código (son 230 codigos que van del rango G1:IB1 de la hoja datos) En la Columna C: el valor almacenado a su correspondiente al código y clues En la Columna D: el número del mes que se obtendrá de la de la columna E de la hoja Datos En la Columna E: el año que se tomará de la columna F de la hoja de Datos   Son 230 códigos por lo que la macro generará 230 filas por cada clave clues que tenga la hoja Datos En el archivo anexo una hoja llamada CSV para que vean la estructura que tendrá, el archivo CSV estará delimitado por comas   Les agradecería mucho que me ayuden por favor, Dios los bendiga Exportar datos a csv.xlsx
    • Hola buenas tardes.   Debido al trabajo debo estar comparando en un periodo unos archivos dentro de una carpeta o subcarpeta. en base a la fecha de creacion o modificacion.  pero tengo que estar viendo carpeta por carpeta y aveces son varios. Con una macro intente  listar los archivos de cualquier carpeta y subcarpeta, esto activandolo segun la celdaactiva. El problema es que tiene algunos errores. 1. si la carpeta cuenta con subcarpetas me los manda a muchas filas abajo. Mi idea es hoja(Así debe quedar) Que con una macro pueda seleccionar la carpeta desde el buscador y me de la lista de archivos a partir de la fila 6. siendo columna A= fecha de modificación, columna B =Fecha de creación y columna C=Nombre del archivo con hiperlink. Con otro o con la misma macro poder seleccionar otra carpeta y sus subcarpetas, según sea el caso. y me liste a partir de la columna F de la fila 6 Siendo La columna F=Nombre del archivo, columna H=fecha de creación, columna I=ultima modificación   Para así poder acceder y comparar mis archivos, directamente desde excel.   Muchas gracias Mariano       Listar archivos de 2 carpetas para comparar.xlsm
    • Hola buenas, Os presento mis dudas. Tengo un libro  (llamémosle LibroDestino) con dos módulos, uno de definición de variables "ModDef" y otro de inicializacion de esas mismas variables "ModCfg". Necesito que al copiarme una hoja de otro libro(llamémosle LibroOrigen), mediante un procedimiento, sobrescribir el modulo de inicialización de variables del LibroDestino con el  contenido del módulo que hay en el LibroOrigen. Destacar que los dos módulos de cada libro tienen el mismo nombre "ModCfg". Y tienen una única variable llamada "Mensaje". En el LibroDestino tiene el valor "Hola" y en el LibroOrigen el valor "Adiós" Este procedimiento lo realiza perfectamente,  es decir se sobrescribe, pero si en el mismo procedimiento quiero utilizar el nuevo valor de esa variable, me conserva el valor de la variable anterior. Para hacer las comprobaciones he ejecutado un MsgBox al empezar y al acabar el procedimiento, pero en los dos casos me devuelve el valor original del LibroDestino el valor "Hola", cuando mi idea es que al sobrescribir el modulo con el nuevo valor de la variable, el último MsgBox me devuelva el valor "Adios". Mi objetivo es poder tener la inicialización de esas variables en un libro que no sea el de trabajo (LibroDestino), ya que según la hoja que importe puedo requerir que las variables tengan un valor u otro. ¿Por que no me coge en el procedimiento el nuevo valor de la variable? ¿Cómo podría conseguirlo? He tenido que activar en VBA  la referencia Microsoft visual basic for applications extensibility 5.3 desde  Herramientas -> Referencias. Creo que es la única manera de poder trabajar con los módulos desde VBA, aunque si se pudiera de otra manera creo que sería mas óptimo. Mil gracias de antemano, un saludo!         Libro1_Prueba.xlsm Libro2_Prueba.xlsm
    • Agradecido Antoni! Tus sugerencias me ayudaron mucho! Como pudiese hacerte llegar el archivo?
  • 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.