Radio Aportaciones:  
--:--  | : 12hs-16hs -
Toggle Bar

    problema con SATIC-2

    03 Ago 2010 18:27 #63180 por ByPaco
    Le platico un problema y mi solución para ello, tengo un programa de nóminas que importa los archivos de las obras al formato de SATIC5 (cosa que ayuda mucho), con un conveniente, me separa las hojas en carpetas individuales por obra y departamento (según mi configuración), por ejemplo tengo una obra con tres departamentos y me genera una carpeta con la obra y departamento 1, otra de la misma obra pero departamento 2. mi solución es tomar el departamento 1 y pegar toda la información de los otros departamentos ahí, y lo que pasaba es que me ponia a un trabajador que hubiera estado trabajando en dos departamentos duplicado (con sus respectivos dias por departamento), para solucionar hice esta macro que recorre todos los datos y si hay uno igual suma los dias y elimina el duplicado, se las dejo a ver si les es de utilidad
    Sub DepuraSatic5()
    'macro para depurar los datos de trabajadores
    'después de unir varios archivos de la misma obra
    'de la relacion SATIC-5
    '2010.06.18 ByPaco
    Dim NumFil As Variant
    Dim Cel1 As String
    NumFil = ActiveCell.CurrentRegion.Rows.Count 'contamos el total de filas del rango
    n = ActiveCell.Row
    u = 1
    Do Until n = NumFil
    Cel1 = Cells(n, 3).Value
        u = n + 1
        Do Until u = NumFil 'hacer hasta el NumFil
        Cel2 = Cells(u, 3).Value
            If Cel1 = Cel2 Then 'si los nombres son iguales, entonces...
                val1 = Cells(n, 5).Value 'copiamos valor de la primera celda
                val2 = Cells(u, 5).Value 'copiamos valor de la segunda celda
                Cells(n, 5) = val1 + val2 'sumamos los valores y lo pegamos en la primera celda
                Cells(u, 1).EntireRow.Delete 'eliminamos la fila del segundo valor
                NumFil = NumFil - 1 'como eliminamos una fila corregimos el total de las mismas
                u = u - 1
            End If
        u = u + 1
        Loop
        n = n + 1
    Loop
    Call Numera
    End Sub
    
    Sub Numera()
    Dim fil As Variant
    fil = ActiveCell.CurrentRegion.Rows.Count
    n = ActiveCell.Row 'n = 1
    o = ActiveCell.Row - 1
    Do Until n = fil
        Cells(n, 2).Value = n - o
        n = n + 1
        Loop
    End Sub

    « Antes de que los reinos cambien, los hombres deberán cambiar »

    Por favor, Identificarse o Crear cuenta para unirse a la conversación.

    Tiempo de carga de la página: 0.142 segundos

    Ayúdanos a conservar este sitio!

    ¿Quién está en línea?

    Hay 355 invitados y ningún miembro en línea