Optimizar el código de un módulo

Necesito que alguien por favor me ayude optimizando este código para ingresar n cantidad de datos y que funcione.

Lo que hace es que cuenta la cantidad de datos que empicen con TRM y al que es diferente le suma 1, pero al momento solo funciona para 30 TRM ingresados de forma consecutiva, si ingreso 31 ya sale error y no puedo hacer este mismo proceso para 200 TRM ingresados consecutivamente porque no es práctico por código.

Columns(35).FormulaR1C1 = "=+LEFT(RC[-26],3)"
If ActiveCell.Offset(1, 34) = "TRM" Then
    If ActiveCell.Offset(2, 34) = "TRM" Then
        If ActiveCell.Offset(3, 34) = "TRM" Then
            If ActiveCell.Offset(4, 34) = "TRM" Then
                If ActiveCell.Offset(5, 34) = "TRM" Then
                    ActiveCell.Offset(0, 8) = ActiveCell.Offset(6, 8) + 1
                    Columns(35).Clear
                    Else
                    ActiveCell.Offset(0, 8) = ActiveCell.Offset(5, 8) + 1
                    Columns(35).Clear
                End If
                Else
                ActiveCell.Offset(0, 8) = ActiveCell.Offset(4, 8) + 1
                Columns(35).Clear
            End If
            Else
            ActiveCell.Offset(0, 8) = ActiveCell.Offset(3, 8) + 1
            Columns(35).Clear
        End If
        Else
        ActiveCell.Offset(0, 8) = ActiveCell.Offset(2, 8) + 1
        Columns(35).Clear
    End If
    Else
    ActiveCell.Offset(0, 8) = ActiveCell.Offset(1, 8) + 1
    Columns(35).Clear
End If

Esta es la tabla de datos.

1 Respuesta

Respuesta
-1

[Hola

Cuando hay muchos "If" en una macro, además del uso "excesivo" de "ActiveCell", la verdad es que la primera opinión es que no debe ser un código muy eficiente y por lo que comentas acerca de que tiene ciertos límites, podríamos pensar que esa opinión podría ser real, por lo que en todo caso sugiero que trates, más que de mostrar la macro, de explicar que es lo que necesitas como objetivo/resultado con más detalle de lo que has colocado en tu párrafo. Ya colocaste lo que, al menos aparentemente, tienes en tus celdas, pero sería mejor explicar como están los datos y como deberían quedar después de usar la macro. Basta que muestres el ejemplo con cinco o sis filas.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas