Jump to content

patriciomates

Members
  • Posts

    63
  • Joined

  • Last visited

  • Days Won

    1

patriciomates last won the day on August 21

patriciomates had the most liked content!

About patriciomates

  • Birthday August 8

Profile information

  • Gender
    Hombre
  • Localización:
    España

Converted

  • Campos
    ;
  • Mi versión de Excel:
    0

Recent Profile Visitors

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

patriciomates's Achievements

  1. Si es que el problema es que no sé trabajar con las fórmulas ... y me cuesta mucho explicarme ... me gustaría mucho reducir código VBA y poner fórmulas. Te paso lo que he podido avanzar. Necesitaría formular la tabla de abajo para que me facilitara los datos de todos los trabajadores de la tabla DATOS teniendo en cuenta el horario de la tabla RUTAS. Y el criterio de NOCTURNIDAD BuscarEnDosTablas_VBA.xlsm
  2. Hola, Amigos. Se me presenta esta cuestión y la verdad que no tengo experiencia con las fechas, por eso acudo a vosotros. He publicado aquí esta consulta para ver si se puede resolver por fórmulas. Si no es posible pues volvería a abrir la consulta en VBA si así me lo recomendáis. Este es el libro de trabajo, tenemos dos tablas DATOS y RUTAS. Cada día que el trabajador asiste se graba su Asistencia en la tabla DATOS, dependiendo del tipo de ruta que hace, es decir R1, R2 ... se detalla en la siguiente tabla que horario tiene esa ruta con respecto a la época del año. Finalmente se quiere poder calcular el número de horas de nocturnidad trabajadas por el trabajador según su ruta y periodo de consulta. Os dejo el archivo, para ver si me podéis echar una mano como os he dicho antes no sé por dónde empezar ... había pensado en INDICE y COINCIDIR para cruzar las tablas con dos matrices, pero no sé cómo entro según la fecha.BuscarEnDosTablas.xlsx
  3. Hola, Amigos. Se me presenta esta cuestión y la verdad que no tengo experiencia con las fechas, por eso acudo a vosotros. He publicado aquí esta consulta para ver si se puede resolver por fórmulas. Si no es posible pues volvería a abrir la consulta en VBA si así me lo recomendáis. Este es el libro de trabajo, tenemos dos tablas DATOS y RUTAS. Cada día que el trabajador asiste se graba su Asistencia en la tabla DATOS, dependiendo del tipo de ruta
  4. Hola estoy probando tu formula y me sale duplicado
  5. Hola, familia excel. Hoy traigo una MACRO para que, por favor, como siempre agradecer vuestra ayuda, si sois tan amables de optimizar lo máximo posible el código. GRACIAS. PLANTILLA.dotxExcelToWordToPdf.xlsm SE TRATA DE PASAR LOS DATOS DE UNA HOJA DE EXCEL A TRAVÉS DE UNA PLANTILLA WORD He desarrollado la capacidad de buscar y reemplazar los valores, no solo en el body si no que también en el Header, Footer, Text Boxes, Shapes ... Para acabar guardando el archivo en PDF con el nombre a quién va dirigida la carta ... y además comprueba si ya hay un archivo con ese nombre y le añade una secuencia numérica, para evitar overwriting. El código Para que la macro corra hay que tener las librerías
  6. Funciona muy bien he hecho una lectura por consola ... muchas gracias forever Antoni my God
  7. Ya está solo falta asignar antes de entrar al doble for el valor de la posición de la selección a la i deCuaABAse.xlsm
  8. Sub aBaseDeDatos() Dim IniciarTiempo As Double IniciarTiempo = Timer Dim cel As Range, rng As Range Dim txt1 As String, fecha As String, dato As String, buscarv As String Dim recuadroVerde As Variant, ultima As Variant Dim i As Integer, j As Integer, k As Integer, NroFila As Integer, NroColumna As Integer, recurrencia As Integer NroFila = ActiveCell.Row NroColumna = ActiveCell.Column UsuarioRango = Selection.Address(False, False) If NroFila = 8 Then i = 2: ElseIf NroFila > 8 Then i = (NroFila - 😎 + 2: End If j = 0 k = 0 For Each rng In Range(UsuarioRango).Columns Debug.Print vbCr & "columna " & rng.Address For Each cel In rng.Cells Debug.Print " - celda " & cel.Address recuadroVerde = cel.Address ActiveSheet.Range(recuadroVerde).Select NroColumna = ActiveCell.Column If NroColumna = 19 Then NroColumna = NroColumna - 17 k = NroColumna ElseIf NroColumna Like "*[13579]" Then NroColumna = (NroColumna - 17) + Abs(19 - NroColumna) k = NroColumna ElseIf NroColumna Like "*[02468]" Then NroColumna = (NroColumna - 17) + Abs(19 - NroColumna) k = NroColumna End If recurrencia = 1 / 4 * (-1) ^ NroColumna * (-2 * NroColumna + 35 * (-1) ^ NroColumna - 39) k = recurrencia dato = ActiveSheet.Range(recuadroVerde).Value txt1 = ActiveSheet.Range(recuadroVerde).Offset(0, k).Value fecha = ActiveSheet.Range(recuadroVerde).Offset(-i, 0).Value buscarv = "=VLOOKUP(RC[-2],trabajadores,2,FALSE)" Debug.Print txt1 & " " & fecha & " " & dato ultima = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row + 1 With Sheets("DeCuaABase") .Range("A" & ultima) = txt1: .Range("B" & ultima) = CDate(fecha): .Range("C" & ultima) = buscarv: .Range("D" & ultima) = dato End With i = i + 1 'j = 0 Next cel i = 2: 'j = j + 1 Next rng MsgBox Format(Timer - IniciarTiempo, "00.00") End Sub
  9. VOY A INTENTARLO y si veo que no le saco punta os pido intervención.
  10. Tengo algunas preguntas .... Si solo quisiera añadir un día en particular o un grupo de 3 días de ese mes .... ya que es un pronóstico y si y solo si los trabajadores han asistido y realizado sus turnos pronosticados entonces lo pasaría a base de datos. Has ahora con mi código puedo por ejemplo pasar un dia: Pasar la mitad de los trabajadores de 1 dia: Pasar un solo trabajador de un día: PERO siempre empezando desde la fila 8 por la manera en la que he realizado el CODIGO Podemos pasar dos días o tres días cualesquiera siempre que se empiece desde arriba .... Me gustaría añadir un identificador más a mi código para que de manera selectiva tener la funcionalidad de pasar la celda seleccionada de manera correcta, se 1 o una columna, se empiece por el principio de la columna o a media columna. EJEMPLO DE FALLO : ya que la fecha lleva CDate de manera que me aseguro de que coja la fecha si o si. Es decir, si inicio el paso de datos desde la celda S10 no funciona.
  11. Ok os mando este archivo para que por favor me ayudéis a dejar este código mejor ... yo soy matemático ... solo llevo un par de año con las macros y con vosotros .... y me gusta mucho cuando me dais perspectivas nuevas de cómo hacer las cosas. Como siempre muchas gracias de antemano por vuestra valiosa atención. video.mp4 deCuaABAse.xlsm
×
×
  • Create New...

Important Information

Privacy Policy