Jump to content

YianTheJOP

Members
  • Posts

    52
  • Joined

  • Last visited

  • Days Won

    1
  • Country

    Spain

YianTheJOP last won the day on November 14 2020

YianTheJOP had the most liked content!

About YianTheJOP

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

YianTheJOP's Achievements

  1. Tal como lo compartísteis funcionaban perfectos todos. Pero con mi torpeza e intentandolo adaptar a mí Excel se me hizo un mundo. 😅😅 (Los que no entendemos ya se sabe). El que primero probé e intenté añadir fué el de Gerson Pineda ya que con lo poco que sé sobre vba pues.... La verdad me resultaba más comprensible lo que aportaba e intentaba mostrar. Pero no sé la que lié que me fallaba por todas partes al añadirlo al Excel😁😅. Yo firmo por saber solo un 10% de los tres. 🤣🤣 Repito, muchísimas gracias por hacernos la vida más fácil. 👍
  2. Buenas tardes chicos, impresionante!!! Ha pasado de tardar unos 25 minutos a solo 50segundos 😳 Hemos usado los datos reales del personal y están alucinando. Al final he usado la propuesta de @Janlui @JSDJSD La propuesta de @Gerson Pineda yo la entendía mucho más y es la primera que integré pero inexplicablemente me marcaba fallo en el tema de mostrar los segundos en ejecutar la macro. No sé si será por la versión de Excel, trabajamos con Excel365. Como siempre muchísimas gracias por vuestra ayuda desinteresada siempre. un saludo.
  3. Estoy mirando e intentando entender y...... es una pasada!!!!! Está perfecto tanto el aporte de @Janlui como el añadido de @JSDJSD como la versión de @Gerson Pineda. Ahora solo me falta implementarlo en el archivo Excel y darle un par de vueltas, mi intención es realizar 2 archivos con las 2 ideas y ver cual funciona más rápido funcionando en un escenario real. Intentaré el lunes, martes tenerlo listo "con todos los datos reales de los empleados" y ver como reacciona y cual deciden quedarse. Por supuesto que os comentaré por aquí la velocidad exacta de las ideas planteadas Muchísimas gracias chicos por su tiempo. El lunes, martes comento. Un saludo.
  4. Lo miro mañana que no tengo acceso ahora al ordenador. @Janlui gracias por molestarte. Un saludo. Otra cosa..... Si creéis que este archivo es digno después de mejoras publicarse aquí podéis cualquiera colgarlo en otro sitio del foro para que sea útil a cualquiera. Es un poco "complejo" pero es útil para un departamento de RH. Habréis visto que tiene calculadora entre fechas, avisos directos en Outlook, alertas,etc para gestionar contratos. Yo no tengo tiempo de publicarlo, solo pido que se mire bien y se borre todo rastro de referencias a mí empresa y ya está. Ojalá le sea útil a alguien. Gracias.
  5. Hola @Gerson Pineda lo que se busca es lo que hace pero más rápido. Te resumo,,,, eliminar los datos que salen en el textbox de la hoja BD "todos" ya que se supone que ese trabajador no trabajara más con nosotros. Pero...... Que realice una copia de todo lo eliminado de la BD en la hoja KO o algo así se llama, que ahora no puedo mirarlo, por si alguna vez decide venir a trabajar otra vez o simplemente para consultar posteriormente. La función que realiza el botón es totalmente correcta actualmente pero es eternamente lenta. 25 minutos para eliminar a una persona de la BD y realizar copia en hoja KO. Una locura!!!!😅
  6. Si y no. A ver si te lo explico bien. Cada trabajador tiene un único código en la empresa pero..... Tiene en la BD unas 60 o 70 entradas diferentes. Para que la BD pueda trabajar bien y con un registro único, al final de la fila réplica su código de empleado + 1, código empleado +2, código empleado+3 y así repetidamente. El número añadido detrás de su número de empleado es su primer contrato o entrada, segundo contrato o entrada, tercera entrada,etc. Con este fichero gestionan los contratos de personal eventual y cada semana les hacen un contrato nuevo, políticas de empresa.
  7. Buenos días a todos, @Gerson Pineda @Janlui adjunto el archivo Excel sin datos de personal y eliminado los logos, etc de toda referencia a la empresa, o eso creo, espero no meterme en un jaleo. He tenido que sobornar a un compañero para conseguirlo Añado estas capturas también. A ver si me podéis ayudar. Gracias. Gestión FECHAS empleados COPIA.xlsm
  8. Ok, lo que comentas es lo más lógico. Haré eso, intentaré "copiar" la estructura y subir una muestra, a ver si me podéis ayudar. Intentaré subirla entre mañana y el sábado, ok? Y mil gracias.
  9. Gracias @Gerson Pinedapor molestarte. Respecto a lo de subir el archivo sé por otras ocasiones que he preguntado qué es lo correcto y hoy les he pedido una copia sin los datos y me la han negado con buenas palabras y los entiendo ya que está "toda la vida" del personal ahí dentro. Mañana les haré entender que para estudiar el código necesito una copia a ver si hay suerte. Y tienes razón en que lo que realiza es buscar en la BD información, la encuentra, Alcorta y la pega en otra hoja y después sigue buscando y sigue realizando lo mismo. Me deja un poco parado lo que me comentas de que vuelve a empezar a buscar y localizar, yo pensaba en que continuaba donde lo había dejado. respecto a lo de 25 minutos es cierto, hoy me han dicho que podía tardar 16 minutos y han hecho una prueba delante mío y el resultado han sido 25 minutos de reloj!!!! Una locura.
  10. Buenos días a todos, En la empresa tenemos una "Base de datos" con registros de personal, contratos, etc que se gestiona desde un formulario y funciona muy bien todo menos el botón EliminarBD que ejecuta el siguiente código. Private Sub btn_Eliminar_Click() Dim Ufila, ufilaD, i, j As Long Dim ht As Worksheet Dim hd As Worksheet Set ht = Hoja3 Set hd = Hoja8 If Me.txt_nic = "" Then Exit Sub If MsgBox("Seguro de eliminar TODOS los registros del item seleccionado?", vbQuestion + vbYesNo, "Borrar") = vbNo Then Exit Sub End If Ufila = ht.Range("A" & Rows.Count).End(xlUp).Row For i = 2 To Ufila ufilaD = hd.Range("A" & Rows.Count).End(xlUp).Row + 1 If Me.txt_nic = ht.Range("A" & i) Then hd.Cells(ufilaD, 1) = ht.Cells(i, 1) hd.Cells(ufilaD, 2) = ht.Cells(i, 2) hd.Cells(ufilaD, 3) = ht.Cells(i, 3) hd.Cells(ufilaD, 4) = ht.Cells(i, 4) hd.Cells(ufilaD, 5) = ht.Cells(i, 5) hd.Cells(ufilaD, 6) = ht.Cells(i, 6) hd.Cells(ufilaD, 7) = ht.Cells(i, 7) hd.Cells(ufilaD, 😎 = ht.Cells(i, 😎 hd.Cells(ufilaD, 9) = ht.Cells(i, 9) hd.Cells(ufilaD, 10) = ht.Cells(i, 10) End If Next i For j = 2 To Ufila Do While Me.txt_nic = ht.Range("A" & j) ht.Range("A" & j).EntireRow.Delete Loop Next j Me.ltb_ListaBD.Clear Unload Me MsgBox "Registros eliminados satisfactoriamente...", vbInformation, "Listo" End Sub Me gustaría aclarar que lo normal es subir el archivo para su gestión y prueba pero el departamento correspondiente no me lo puede facilitar por contener datos calientes, es como lo denominan ellos. Este código tarda de 16 a 25 minutos en terminar su función cada vez que se presiona. La BD consta de unos 46000 registros y están desesperados ya que cada vez que lo ejecutan es un desespero. Mi pregunta es si existe alguna función, añadido o forma de cambiar el código que haga que se ejecute más rápidamente. Gracias, un saludo.
  11. Buenos días a todos, @Janlui simplemente excelente. Tal como he llegado lo he probado y justo lo que pedía. además que el análisis de Almacén que compartiste es genial, te quedó perfecto. Ni te preguntaré como lo sacaste Sub suma_M() Sheets("mes2").Select r = 2 Do While Cells(r, 2) <> "" If Cells(r, "p") = "Ya existente" Then Cells(r, "q").Select ActiveCell.Formula = "=match(b" & r & ",'mes1'!b:b,0)" Z = ActiveCell.Value Cells(r, "q") = Worksheets("mes1").Cells(Z, "m") + Cells(r, "m") End If r = r + 1 LoopEnd Sub Lo primero muchísimas gracias, lo terminaré de montar e intentaré dejárselo listo para mañana, alucinará. Lo segundo, una preguntilla, soy muy curioso y estoy seguro que me podrá ser muy util tu código para adaptarlo a cualquier otra cosa que me surja. Entiendo que: Suma: Cells(r, "q") = Worksheets("mes1").Cells(Z, "m") + Cells(r, "m") Resta: Cells(r, "q") = Worksheets("mes1").Cells(Z, "m") - Cells(r, "m") Resta inversa: Cells(r, "q") = Cells(r, "m") - Worksheets("mes1").Cells(Z, "m") Y supongo que se podrán realizar más combinaciones, etc.
  12. Mañana tal como llegue lo pruebo e informo. Gracias por tu tiempo.
  13. Te explico un poco, que me pilladas saliendo del trabajo. Verás que el formulario lo he montado un poco infantil o intentando buscar comprensión de uso. Es para una compañera de la sección de almacén que es una mujer mayor. Hace tiempo que me pidió ayuda y vi la necesidad de ayudarla. En un principio me pidió que de 2 hojas Excel que serían el inventario del mes anterior y del actual, si apretando un botón se le podían remarcar las referencias añadidas nuevas. Se entiende que referencias que el mes pasado no estaban y este si que están. Hoy se lo he enseñado funcionando y la mujer me comentó que se le olvidó decirme que necesitaría que también le salga en una columna al lado de la hoja2 o Mes2 o presente mes, llamémosle como se quiera. Le salga la diferencia de stock que hay de las referencias. Sería la diferencia entre la hoja1 y hoja2 columna M de ambas hojas. No sé si me explico. Ya sé que hay otros medios para obtener los datos pero la mujer no sabe ni quiere tocar nada que no entienda. Necesita algo fácil y apretando un botón. Se lo quiero lograr hacer pq la mujer se lo merece, le cuesta y al parecer se lleva bron... por fallos que al parecer comete y no se lo merece. Si necesitas algún dato sobre la macro me lo comentáis y mañana por la mañana os lo proporciono. Gracias y perdón por el discurso.
×
×
  • Create New...

Important Information

Privacy Policy