Macro para hacer listado según indice numérico

Perdón amigos por las molestias:

Quisiera si no es tanto el abuso, que me ayuden con lo siguiente: tengo 3 hojas, la primera se llama PRODUCTOS tengo unos registros (cantidad variable) que ocupan 21 columnas, en la columna A tengo los números o ID, a partir de la segunda columna empiezan los datos (muchos de los datos de cada columna se repiten); La segunda hoja se llama ATRIBUTOS y en la celda A2 tengo una serie de números separados por comas (ej, 2,5,6,8,15,25); y una tercera hoja en blanco llamada PERMITIDOS; lo que pretendo es que un macro me haga lo siguiente: Crear un nuevo listado en la hoja PERMITIDOS (o preferiblemente que la haga en la misma hoja PRODUCTOS) en la cual solamente me deje los registros (o números) que tengo en la celda A2 de la hoja atributos (ejemplo: si en la celda A2 de ATRIBUTOS tengo los números 2,5,6,8,15,25 entonces la nueva lista solo deberá tener los registros correspondientes a dichos números)

Solamente una cosa; quisiera un macro que me haga el nuevo listado pero sin la herramienta de filtrado ya que esto solo me ocultaria los registros y asi no me sirve.

Espero haberme dado a entendes, y desde ya muchas gracias.

saludos

1 respuesta

Respuesta
1

Te genero la macro y te la envío

Saludos. Dam

Muchas gracias, estaré pendiente.

saludos

Esta sería la macro, Sigue las Instrucciones para un botón y ejecutar la macro
1. Abre tu libro de Excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona Asignar macro / Selecciona: filtrado
9. Aceptar.
10. Para ejecutarla dale click a la imagen.

Sub filtrado()
'por.dam
Set h1 = Sheets("PRODUCTOS")
Set h2 = Sheets("ATRIBUTOS")
Set h3 = Sheets("PERMITIDOS")
h3.Cells.Clear
h2.Select
ini = 1
j = 1
filas = h2.Range("A2")
    For i = 1 To Len(filas) + 1
        If Mid(filas, i, 1) = "," Or Mid(filas, i, 1) = "" Then
            fin = i - 1
            h3.Cells(j, 1) = Val(Mid(filas, ini, fin))
            j = j + 1
            ini = i + 1
        End If
    Next
    h3.Select
    Columns("A:A").Select
    Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
filaini = 1
h1.Select
h1.Range("C:C").Clear
For i = 1 To h3.Range("A" & Rows.Count).End(xlUp).Row
    fila = h3.Cells(i, "A")
    If fila = 1 Then
        filafin = 0
    Else
        filafin = fila - 1
    End If
    For j = filaini To filafin
        'h1.Cells(j, 3) = "pelas"
        h1.Cells(j, 3).EntireRow.Clear
    Next
    filaini = fila + 1
Next
For j = fila + 1 To h1.Range("A" & Rows.Count).End(xlUp).Row
    'h1.Cells(j, 3) = "pelas"
    h1.Cells(j, 3).EntireRow.Clear
Next
End Sub

Indicaciones:

1. Puedes poner los números así 2,5,6,8,15,25 ó así 2, 5, 6, 8, 15, 25 ó así 6,5,2,25,15,8
2. En la hoja “PRODUCTOS” solamente van a quedar los registros que correspondan a los números
3. La hoja de PERMITIDOS, es necesaria, la utilizo para ordenar los números, no la vayas a quitar.
Prueba y me comentas

Saludos. Dam
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas