Ciclo for no valida ultimos 2 renglones en excel

Tengo un ciclo for para contar cuantas celdas de una columna coinciden con un criterio de búsqueda y al finalizar el ciclo no me regresa el valor de los últimos dos renglones anexo el código que tengo para ver si me lo pueden checar y decirme en que estoy mal

Sub C_LIC_AUTO()

Application.ScreenUpdating = False
ha = ActiveSheet.Name 'hoja inicial con los valores
Dim CUANTOS As Integer
Set l1 = ActiveWorkbook
Set h1 = Sheets(ha)
ARCH = Application.GetOpenFilename("Archivos de excel,*.xls*", , _
"Seleccione archivo para obtener los datos.")
ca = InputBox("Teclea la letra de la Columna a donde se importaran los datos DEL TIPO " & ARCH, "ATENCION") '"B" 'columna de resultados
TIPO = InputBox("Teclea EL TIPO DE dato 1,2, 3" & ARCH, "ATENCION") '"B" 'columna de resultados
If ARCH <> False Then
Set l2 = Workbooks.Open(ARCH)
hb = ActiveSheet.Name
Set h2 = l2.Sheets(hb)
For i = 4 To h1.Range("KK" & Rows.Count).End(xlUp).Row
CUANTOS = 0
    For J = 2 To h2.Range("B" & Rows.Count).End(xlUp).Row
          If h1.Cells(i, "A") = h2.Cells(J, "B") Then
               If h2.Cells(J, "C").Text = TIPO Then
                   CUANTOS = CUANTOS + 1
               End If
               Else
                  h1.Cells(i, ca) = CUANTOS
               End If
     Next
Next
End If
l2.Close
End Sub

EJEMPLO DE DATOS

HOJA1

COLUMNA A          

VICTORIA      

TAMPICO

MADERO

HOJA 2

COLUMNA B       COLUMNA C

VICTORIA            TIPO1

VICTORIA            TIPO1

VICTORIA            TIPO3

TAMPICO            TIPO1

TAMPICO            TIPO1

TAMPICO            TIPO2

TAMPICO            TIPO3

MADERO             TIPO1

MADERO            TIPO1

MADERO            TIPO3

De esos datos comparo el contenido de la celda a de la hoja 1 contra el contenido de la celda b de la hoja dos y si es igual válido el contenido de la celda c contra un dato de entrada si coincide hago un conteo y el resultado lo almaceno en otra columna de la hoja1 que es variable pero que coincida con la fila de validación

Solo que al final no me regresa los valores de madero

Quisiera saber que le falta al ciclo para que termine en el ultimo renglón donde encuentre datos de la columna A de la hoja1

1 Respuesta

Respuesta
1

En esta línea, le estás diciendo que el ciclo vaya desde la fila 4 hasta la última fila con datos de la columna "KK"

For i = 4 To h1.Range("KK" & Rows.Count).End(xlUp).Row

En realidad debería ir hasta la última fila con datos de la columna "A"

For i = 4 To h1.Range("A" & Rows.Count).End(xlUp).Row

Te anexo la macro con algunos ajustes:

Sub C_LIC_AUTO()
'Act.Por.Dante Amor
    Application.ScreenUpdating = False
    Set l1 = ActiveWorkbook
    Set h1 = ActiveSheet
    arch = Application.GetOpenFilename("Archivos de excel,*.xls*", , "Seleccione archivo para obtener los datos.")
    If arch = False Then Exit Sub
    '
    ca = InputBox("Teclea la letra de la Columna a donde se importaran los datos DEL TIPO " & arch, "ATENCION") '"B" 'columna de resultados
    tipo = InputBox("Teclea EL TIPO DE dato 1,2, 3" & arch, "ATENCION") '"B" 'columna de resultados
    '
    Set l2 = Workbooks.Open(arch)
    Set h2 = l2.ActiveSheet
    For i = 4 To h1.Range("A" & Rows.Count).End(xlUp).Row
        cuantos = 0
        For j = 2 To h2.Range("B" & Rows.Count).End(xlUp).Row
            If h1.Cells(i, "A").Value = h2.Cells(j, "B") And _
               h2.Cells(j, "C").Text = tipo Then
                cuantos = cuantos + 1
            End If
        Next
        h1.Cells(i, ca) = cuantos
    Next
    l2.Close False
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas