Macro completar kardex según tabla de movimientos

Dante esta es una respuesta que tiene que ver con la pregunta que formule bajo el nombre

MACROS para Llenar datos en columnas según criterio de LA TABLA DE MOVIMIENTOS.

Lo que sucede es que he estoy trabajando otro periodo pero la MACRO no logra ejecutarse, quizás puedas hacer alguna mejora la Macro "CompletaKardex", envío el archivo a tu correo, por favor corrige la MACRO te agradezco tu gran ayuda.

Este es el error

1 Respuesta

Respuesta
1

Reviso el archivo y en la primera oportunidad que tenga te pongo la respuesta.

Hola Dante, creo que ya encontré el problema, creo a que se debe a que los datos comparados no tienen el mismo formato, pese a que tienen el mismo contenido. he echo lo siguiente, he copiado el 1er movimiento de la tabla al kardex, aquí esta la imagen, antes de ejecutar la MACRO

Y con la 1er dato copiado que esta pintado de amarillo, dejando los demás datos sin cambiar procedí a ejecutar los datos con un resultado negativo ya que la MACRO lleno todos los datos con la info del 1er dato osea solo obtuve datos repetidos, como ves en la imagen a continuación

En conclusión, espere como 30 minutos en que termine el proceso de la MACRO ya que la info es de cerca de 2000 filas, con un resultado negativo, debido a problemas de formato de los datos del tipo de movimiento entre el "kardex" y la "tabla movimientos", existe alguna manera de que la MACRO identifique que los datos que esta comporando entre los "tipos de datos" no son iguales y en ese caso pare la MACRO o quizás deje en blanco las filas que tienen ese tipo de problema, gracias, JOHNMOR41

El problema no es el formato, lo que sucede es que en la hoja "TABLA MOVIMIENTOS", tienes un espacio después del texto:

Y en la hoja "KARDEX", no hay espacio, por eso cuando busca el dato no lo encuentra.


Revisa los datos en tu hoja "TABLA MOVIMIENTOS", quita los espacios y ejecuta la macro.

S a l u d o s . D a n t e   A m o r

Recuerda valorar la respuesta.

En la macro solamente estás evaluando hasta la fila 20, ya la aumenté hasta la fila 24, también agregué la función Trim()

Te anexo la macro actualizada

Sub CompletaKardex()
'Por.Dante Amor
'FUNCIONA OPERACION INGRESO X COMPRA
    Set h1 = Sheets("KARDEX")
    Set h2 = Sheets("TABLA MOVIMIENTOS")
    'TIPO DE MOVIMIENTO "R" en KX
    For i = 3 To h1.Range("R" & Rows.Count).End(xlUp).Row
        'T-12 CODIGO MOVIMIENTO "S" en KX
        If h1.Cells(i, "S") = "" Then
            For j = 7 To 24
            'TIPO MOVIMIENTO "C" en tabla
            'TIPO MOVIMIENTO "R" en KX
                If Trim(h2.Cells(j, "C")) = Trim(h1.Cells(i, "R")) Then
                'REFERENCIA "H" en tabla
                    If h2.Cells(j, "H") = "vacio" Then
                        'T-12 "D" en tabla
                        t12 = h2.Cells(j, "D")
                        'T-10 "E" en tabla
                        t10 = h2.Cells(j, "E")
                        'DOCUMENTO "N" en kx
                        doc = Split(h1.Cells(i, "N"), "-")
                        Exit For
                    Else
                        'REFERENCIA "H" en tabla
                        'INI-REF "T" en kx
                        x = h2.Cells(j, "H")
                        y = h1.Cells(i, "T")
                        If h2.Cells(j, "H") = h1.Cells(i, "T") Then
                            'T-12 "D" en tabla
                            t12 = h2.Cells(j, "D")
                            'T-10 "E" en tabla
                            t10 = h2.Cells(j, "E")
                            'REFERENCIA "U" en kx
                            doc = Split(h1.Cells(i, "U"), "-")
                            Exit For
                        End If
                    End If
                End If
            Next
            'T-12 "S" en kx
            h1.Cells(i, "S") = "'" & t12
            'T-10 "O" en kx
            h1.Cells(i, "O") = "'" & t10
            'SERIE "P" en kx
            h1.Cells(i, "P") = "'" & doc(1)
            'NUMERO "Q" en kx
            h1.Cells(i, "Q") = "'" & doc(2)
        End If
    Next
End Sub

S a l u d o s . D a n t e   A m o r

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas