Jump to content

xboxfile

Members
  • Posts

    167
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by xboxfile

  1. Hola. Todavía estoy a tiempo de publicar.

    Por si alguien llega a este post buscando eliminar filas.

    Voy a poner el código que me he hecho para eliminar filas de una array, ya que no se puede directamente tal y como lo hace Excel.

    En mi caso la Array se llama "IdLibres". Evidentemente, está dentro de un proyecto más grande, pero por si solo le puede valer a cualquiera cambiando a sus nombres de array.

    Muchas gracias.

    Private Sub BorraFilas ()

    Dim i, j, n, uFila, uCol, Fila, Col, Id As Integer
    Dim IdLibres, IdLibresTmp() As Variant

    'Para generar nuevo Id antes buscamos en array "IdLibres" Id's libres borrados anteriormente
    Do While IdLibres(i, ListActivoP0 - 1) <> Empty '<- 4 columnas de más a la derecha
        Id = IdLibres(i, ListActivoP0 - 1)

        If Id > 0 Then '<- Si había un Id disponible
            IdLibres(i, ListActivoP0 - 1) = "XXBorrarXX" '<- Lo marcamos para borrarlo luego
            Exit Do
        End If
        i = i + 1
    Loop

    'Subimos todas las filas borradas en array "IdLibres" usando una memoria temporal igual
    IdLibresTmp = IdLibres'<- Copiamos la array
    uFila = UBound(IdLibres): uCol = UBound(IdLibres, 2) '<- Guardamos número de filas y columnas para antes de redimensionar
    ReDim IdLibres(uFila, uCol) '<- Borramos la array master

    'Volcamos desde la array temporal a la buena todo menos lo que tiene marca "XXBorrarXX"
    For j = 0 To NumListBoxP0 - 1
        i = 0: Fila = 0
        Do While IdLibresTmp(i, j) <> Empty
            If IdLibresTmp(i, j) <> "XXBorrarXX" Then
                IdLibres(Fila, j) = IdLibresTmp(i, j)
                Fila = Fila + 1
            End If
            i = i + 1
        Loop
    Next j

    End Sub

     

    TEMA SOLUCIONADO

  2. Hola, un saludo a tod@s.

    Mi consulta es muy sencilla (o no) pero no he visto nada relacionado con esto por Google, quizás desconozco las palabras exactas.

    Me explico, quiero eliminar una fila entera de una array de varias columnas de forma similar a como lo hace nativamente Excel, que seleccionas unas celdas, botón derecho, Eliminar, y el te desplaza todas las de debajo arriba.

    He probado con un bucle y subir todo lo de debajo arriba una fila copiando datos, pero lo veo demasiado, y puede que haya algún comando o algún método que lo haga y yo lo desconozca.

    Espero haberme explicado con claridad.

    No subo ejemplo porque mi pregunta es más bien teórica, con que alguien me apunte algo ya me buscaría la vida.

    Muchas gracias.

×
×
  • Create New...

Important Information

Privacy Policy