|
Responder
|
| Autor | |
alfare
Colaborador
Unido: 28/Junio/2006 Localización: Colombia Estado: Sin conexión Puntos: 702 |
Tema: Ayuda con Software de Planificacion produccionEnviado: 04/Septiembre/2023 a las 18:08 |
|
Estimadxs espero se encuentren bien.
En esta ocasión deseo que puedan ayudarme con una herramienta para la planificación de procesos que me compartió un compañero de trabajo y de la cual requiero hacer una modificación para adaptarla al lugar donde me encuentro trabajando actualmente. Las premisas son las siguientes:
Menu : Este menu tiene las tres opciones que maneja la herramienta. ( Para este caso la hoja de MAQUINAS esta oculta, ya que no hace parte de la consulta que hare mas adelante. Programador: Esta opcion tiene como objetivo basico, establecer para cada producto que se va a planificar, la secuencia de procesos-máquinas y tiempo de cada proceso ( el tiempo se define en cantidad de horas como valor entero). En la columna G se coloca la fecha que tiene formato ( fecha + hora ) de inicio de cada producto, de inicio se puede colocar los mismos datos para todos los productos y en la columna H, la herramienta devuelva automaticamente la fecha + hora de finalización de cada secuencia. Planeador : Lo que hace esta opción que se activa cuando se da click en el menu PLANEADOR, es que devuelve de manera grafica en las celdas de excel, la secuenciación de cada producto con sus respectiva maquinas y numero de horas definidas en cada proceso en la opción PROGRAMADOR. Es en esta opción donde se devuelve la fecha y hora FINAL que se coloca automáticamente en la columna H de la hoja PROGRAMADOR. el sistema automáticamente analiza la disponibilidad de máquinas y las asigna a medida que queden libres. ¿Cuál es el problema o necesidad? Cuando se coloca la fecha y hora INICIAL en la columna G de la hoja PROGRAMADOR y posteriormente se corre el PLANEADOR; esta misma fecha y hora inicial debería ser el inicio de los procesos en la hoja PLANEADOR la cual se puede visualizar desde la columna O en adelante. Se necesita que la hora y fecha inicial que se coloque en la hoja PROGRAMADOR sea el mismo inicio de cada proceso que visualiza en la hoja PLANEADOR. Editado por alfare - 04/Septiembre/2023 a las 18:09 |
|
|
Slds desde Cali Colombia
|
|
![]() |
|
alfare
Colaborador
Unido: 28/Junio/2006 Localización: Colombia Estado: Sin conexión Puntos: 702 |
Enviado: 04/Septiembre/2023 a las 18:12 |
|
archivo por si no funciona el link anterior : https://we.tl/t-HPa713rGaj
|
|
|
Slds desde Cali Colombia
|
|
![]() |
|
AnSanVal
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 16/Marzo/2005 Localización: España Estado: Sin conexión Puntos: 5990 |
Enviado: 06/Septiembre/2023 a las 22:54 |
|
¿Que has intentado?
¿Que resultado te devuelve? ¿Que resultado esperabas? Editado: En tus imágenes no se ven bien los encabezados de columnas. Editado por AnSanVal - 06/Septiembre/2023 a las 22:56 |
|
|
Saludos desde Tenerife.
|
|
![]() |
|
alfare
Colaborador
Unido: 28/Junio/2006 Localización: Colombia Estado: Sin conexión Puntos: 702 |
Enviado: 07/Septiembre/2023 a las 03:22 |
|
Hola Antonio,
me alegra volver a cruzar hilos contigo. Dando respuesta a tus interrogantes, concretamente necesito que la fecha de inicio que se digite en la columna G de la hoja PROGRAMADOR: 1. se replique en la columna I de la hoja PLANEADOR. 2. Según la fecha de punto # 1, el primer proceso-maquina se situé exactamente en la fecha y hora correspondiente que se encuentran establecidas en FILA # 5 a partir de la columna O.…en la hoja PLANEADOR cuando se corre el proceso. El punto # 1 funciona bien, lo que no funciona es el punto # 2 que anteriormente. Hoja programador Hoja Planeador : . |
|
|
Slds desde Cali Colombia
|
|
![]() |
|
AnSanVal
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 16/Marzo/2005 Localización: España Estado: Sin conexión Puntos: 5990 |
Enviado: 07/Septiembre/2023 a las 20:06 |
|
De las 3 preguntas que te hice no respondiste a ninguna, solamente repetiste lo que quieres que te hagamos. Por esta vez "lo pasaré por alto": [O5] =ENTERO(I6) [P5] =O5+"1:00" [Q5] =P5+"1:00" ... y así con el resto .... |
|
|
Saludos desde Tenerife.
|
|
![]() |
|
alfare
Colaborador
Unido: 28/Junio/2006 Localización: Colombia Estado: Sin conexión Puntos: 702 |
Enviado: 07/Septiembre/2023 a las 23:26 |
|
Estimado AnSanval
No soy experto en VBA. Creo que se deberá hacer una modificación en alguna de las siguientes líneas de código para que cuando el proceso de planeación se corra, las fechas y horas de cada actividad se sitúen justo debajo de la fecha y hora de cada columna de la hoja PLANEADOR que inicia a partir de la columna "O". Actualmente la fecha sitúa en el día correspondiente, pero no en la hora. Por ejemplo: 01-sep-23 2:00 am, se sitúa en 01-sep-23-12:00 am. Tengo las siguientes líneas : 'VARIABLES LOCALES AL PROCEDIMIENTO Private FechaInicio As Date Private FechaFinaliza As Date Private FechaTestActual As Date Private Prioridad As Date Private GrupoMaquina As String Private NumeroDias As Integer Private NombreMaquina As String Private FilaMaquina As Integer Private DiasCorrimiento As Integer Private offsetGrupoMaquinaRequerida As Integer Private FilaActualPlaneador As Double Private FilaActualProgramador As Double Private OffsetFecha As Integer Private OffsetDiasUsadosPlaneacionTarea As Integer Private NumDiasMaquinaFestiva As Integer Private ColorThemeIndex As Double Private BanderaEncabe As Byte Private Const ConstGREncabe = "ENB" Type struct_ENB_Estado_Actual FilaActualProgramador As Double FechaInicio As Date GrupoMaquina As String offsetGrupoMaquinaRequerida As Integer NumeroDias As Integer OffsetFecha As Integer DiasCorrimiento As Integer OffsetDiasUsadosPlaneacionTarea As Integer FechaFinaliza As Date 'indica la fecha en que ocurre el encabe End Type Private EnbEstadoActual As struct_ENB_Estado_Actual ------------------------------------------------------------------------- Private Sub PrintVars() strQdef = "" strQdef = strQdef + "Fecha de inicio......." + Str(FechaInicio) + Chr(13) strQdef = strQdef + "Numero de Dias........" + Str(NumeroDias) + Chr(13) strQdef = strQdef + "Grupo Maquina........." + GrupoMaquina + Chr(13) strQdef = strQdef + "Nombre Maquina........" + NombreMaquina + Chr(13) strQdef = strQdef + "Fila Maquina.........." + Str(FilaMaquina) + Chr(13) strQdef = strQdef + "Dias de Corrimiento..." + Str(DiasCorrimiento) + Chr(13) strQdef = strQdef + "Fila Actual Planeador." + Str(FilaActualPlaneador) + Chr(13) strQdef = strQdef + "Offset GR Maquina....." + Str(offsetGrupoMaquinaRequerida) + Chr(13) MsgBox strQdef End Sub ------------------------------------------------------------------------------------------ Private Sub Almacenar_Estado_Actual() 'Esta funcion almacena los datos actuales de posicion, filas etc donde encontro ENCABE EnbEstadoActual.FechaInicio = FechaInicio EnbEstadoActual.FilaActualProgramador = FilaActualProgramador EnbEstadoActual.GrupoMaquina = GrupoMaquina EnbEstadoActual.NumeroDias = NumeroDias EnbEstadoActual.OffsetFecha = OffsetFecha EnbEstadoActual.offsetGrupoMaquinaRequerida = offsetGrupoMaquinaRequerida EnbEstadoActual.DiasCorrimiento = DiasCorrimiento EnbEstadoActual.OffsetDiasUsadosPlaneacionTarea = OffsetDiasUsadosPlaneacionTarea EnbEstadoActual.FechaFinaliza = FechaInicio + OffsetDiasUsadosPlaneacionTarea - 1 + DiasCorrimiento End Sub -------------------------------------------------------------------------------------------------------------------Public Sub TEST() 'CargarFechaInicio 6 'BuscarGrupoMaquina 6, "J" 'BuscarNumeroDiasRequeridos 6, "K" 'BuscarMaquinaenGrupo 'MaquinaDisponibleParada For FilaActualPlaneador = 6 To 6 Step 1 '20 copia la actividad Copy_Encabezado_op FilaActualPlaneador '21 Extrae la fecha de inicio y el grupo de maquina requridos ExtraeFechaIni_DiasReq FilaActualPlaneador '22 Calcula cuantos dias hay entre el inicio del ano y el inicio de la tarea OffsetFecha = DateDiff("d", ANO_EVALUACION, FechaInicio) '40 Busca la primera maquina y empieza a desplazarse en maquinas y dias For offsetGrupoMaquinaRequerida = 0 To 9 Step 2 '42 Busca la maquina que pertenece al grupo FilaMaquina = 5 'inicia una fila antes If BuscarMaquinaenGrupo = False Then MsgBox "NO EXISTE MAQIUNA PARA EL GRUPO", vbCritical, "ADVERTENCIA" Exit Sub Else '50 Verifica si la maquina se encuentra disponible por parada DiasCorrimiento = 0 'Inicia el corriemiento en cero If MaquinaDisponibleParada = False Then 'no disponible MsgBox "NO" PrintVars Else MsgBox "SI" 'si disponible '60 Busca si la maquina se encuentra o no programada ya If MaquinaDisponibleDia = False Then 'no dispoble en planeador MsgBox "NO2" PrintVars Else 'si disponible planeador --> copiar el nombre en las celdas- MsgBox "SI2" PrintVars End If End If End If Next offsetGrupoMaquinaRequerida Next FilaActualPlaneador End Sub ----------------------------------------------------------------------------- Private Sub InicFilaProgramador() HOJA_SELECCIONAR_V3 "MENU" CELDA_SELECCIONAR_V3 "L10" FilaActualProgramador = CELDA_LEER_VALOR_V3 End Sub Private Sub IncFilaProgramador() FilaActualProgramador = FilaActualProgramador + 1 End Sub Private Sub InicFilaPlaneador() HOJA_SELECCIONAR_V3 "MENU" CELDA_SELECCIONAR_V3 "L10" FilaActualPlaneador = CELDA_LEER_VALOR_V3 End Sub Private Sub IncFilaPlaneador() FilaActualPlaneador = FilaActualPlaneador + 1 End Sub 'offsetGrupoMaquinaRequerida Private Sub InicOffsetMaquinaRequeridaPlaneador() offsetGrupoMaquinaRequerida = 0 End Sub Private Sub IncOffsetMaquinaRequeridaPlaneador() offsetGrupoMaquinaRequerida = offsetGrupoMaquinaRequerida + 2 End Sub Private Sub InicFilaMaquina() FilaMaquina = 5 End Sub Private Sub IncFilaMaquina() FilaMaquina = FilaMaquina + 1 End Sub Private Sub InicDiasCorrimiento() DiasCorrimiento = 0 End Sub Private Sub IncDiasCorrimiento() DiasCorrimiento = DiasCorrimiento + 1 End Sub Private Function GrupoMaquinaEsEncabe() As Boolean 'Comprueba si el grupo de maquina es del ENCABE. 'la verificacion se hace con la constante ConstGREncabe If GrupoMaquina = ConstGREncabe Then GrupoMaquinaEsEncabe = True Else GrupoMaquinaEsEncabe = False End If End Function AnSanval te ruego puedas ayudarme...donde tengo y como tengo que hacer el cambio? |
|
|
Slds desde Cali Colombia
|
|
![]() |
|
AnSanVal
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 16/Marzo/2005 Localización: España Estado: Sin conexión Puntos: 5990 |
Enviado: 08/Septiembre/2023 a las 10:37 |
|
"AnSanval te ruego puedas ayudarme...donde tengo y como tengo que hacer el cambio?" ¡Lo siento pero yo no te lo haré! Puedo ayudarte, en una duda puntual que tengas, pero si te hago el trabajo... ¿Que les estaría haciendo a ellos?. Como se suele decir "Contrata un chofer o aprende a conducir.". La mayoría de lo que quieres hacer podrías hacerlo sin VBA, pero si lo quieres con VBA... tendrás que ponerte a la labor. |
|
|
Saludos desde Tenerife.
|
|
![]() |
|
alfare
Colaborador
Unido: 28/Junio/2006 Localización: Colombia Estado: Sin conexión Puntos: 702 |
Enviado: 08/Septiembre/2023 a las 16:45 |
|
De todas formas, Ansanval gracias por que invirtió tiempo.
Por favor cerrar este hilo
|
|
|
Slds desde Cali Colombia
|
|
![]() |
|
Responder
|
|
|
Tweet
|
| Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |