Crear Lista en Excel con macro

Vos sabes que agregue artículos a la lista y las ultimas dos filas no la toma la macro y se borra toda.
Ahora tengo datos hasta la fila 145.
Yo lo puse asi:
=SI.ERROR(INDICE($U$1:$U$145; K.ESIMO.MENOR(SI($U$3:$U$145>0; FILA()); FILA()-2));"")
=SI.ERROR(INDICE($X$1:$X$145; K.ESIMO.MENOR(SI($U$3:$U$145>0; FILA()); FILA()-2));"")

1 respuesta

Respuesta
1

Envíame tu archivo para revisarlo.

Dime si el problema es en la macro o en la fórmula o qué es lo que estás utilizando.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Juan José” y el título de esta pregunta.

H o l a:

Te anexo la macro actualizada

Private Sub Worksheet_Calculate()
'Por.Dante Amor
    For i = 2 To Range("X" & Rows.Count).End(xlUp).Row
        If Cells(i, "U") > 0 Then
            Cells(i, "AF") = Cells(i, "X")
            Cells(i, "AG") = Cells(i, "U")
        End If
    Next
End Sub

':)
':)

Considera la siguiente macro:

Private Sub Worksheet_Calculate()
'Por.Dante Amor
    u = Range("X" & Rows.Count).End(xlUp).Row
    Range("AF3:AG" & u).ClearContents
    For i = 2 To u
        If Cells(i, "U") > 0 Then
            Cells(i, "AF") = Cells(i, "X")
            Cells(i, "AG") = Cells(i, "U")
        End If
    Next
End Sub

':)
':)

Con cualquiera de los dos macros cuando agrego algún valor a las ultimas dos filas me borra toda la matriz.

No pueden convivir en la misma celda las macro y las fórmulas matriciales, o utilizas una solución o la otra.

De todas formas si elimino la macro (que no se para que esta) la matriz sigue haciendo lo mismo cuando agrego valores a las ultimas dos filas

¿Necesito saber si vas a ejecutar la macro?

en realidad no se que esta haciendo la macro, si hace lo mismo que la matriz no hace falta que este.

¿Vas a ejecutar la macro si o no?

No, no la ejecuto

¿Y entonces qué es lo que se borra?

Lo que hace la fórmula matricial es ponerte en las primeras filas todos los valores que son mayores a 0.

Por ejemplo, si en la columna u tuvieras esto:

        U

1     

2    Total

3       0

4       3

5       0

6       2


Lo que va a hacer la fórmula matricial es poner lo siguiente en la columna AF:

        U                              AF

1     

2    Total

3       0                              3

4       3                              2

5       0

6       2


En las celdas AF5 y AF6 no te pone nada porque la fórmula solamente pone los valores que son mayores a 0, y digamos, que los "agrupa" en las celdas de arriba hacia abajo.


Espero que con el ejemplo, se explique cómo funciona la fórmula matricial.

Si ese resultado no es lo que esperas, entonces con ejemplos explica lo que quieres como resultado.

Sal u dos

De hecho la fórmula es más compleja, lo que hace es poner el valor de la columna X, siguiendo con mi ejemplo el resultado quedaría así:

        U                   X                      AF

1     

2    Total             Cod.                  Lista

3       0                 4                         7

4       3                 7                        11

5       0                6

6       2                11


El resultado de las fórmulas matriciales son 7 y 11, ya que en la columna U, solamente va a tomar los que son mayores a 0.

Sal u dos

Claro, pero fíjate en el archivo que te pase, cuando vos podes valores en las ultimas dos filas la matriz te funciona?

Lo que tienes en la AF143 es esta fórmula:

=SI.ERROR(INDICE($X$1:$X$120,K.ESIMO.MENOR(SI($U$3:$U$120>0,FILA()),FILA()-2)),"")

Tienes 120 como última fila.

Para actualizar las fórmulas matriciales, selecciona desde la celda AF3 hasta la AF145, presiona F2 para editar la fórmula y presiona al mismo tiempo las teclas shift+Control+Enter, con eso se actualizarán todas las fórmulas.

':)
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas