Listar los artículos

Buenos días, tengo una lista de 4350 artículos en una columna con sus respectivas características en la columna siguiente en la hoja1, sin utilizar los filtros que tiene excel:
1.- ¿Cómo puedo listar los artículos en la hoja2 teniendo como referencia la base de datos de la hoja1?
Las condiciones a cumplir son por ejemplo:
Del listado necesito todos los que empiecen con la letra C (Supongamos que listó 150 artículos), después de la "C", que continúen con la letra "E", (De ahí que reduzca la cantidad de artículos listado), después con la letra "L" (Y de nuevo que reduzca la cantidad de artículos si es que existieran)
2.- Después de esas reducciones poder imprimir los resultados finales de lo obtenido y que sea compatible con excel 2003 y 2007 (No importa que sea para uno y para otro)
Muchas gracias por su insuperable ayuda, para nosotros los inexpertos es de gran valor.

1 Respuesta

Respuesta
1
Primero preparamos el escenario:
Hoja1
Tu lista de artículos debe tener un encabezado en la fila 1. Si no lo tiene, créalo. Toma nota del nombre de los encabezados. Para el caso de los artículos el nombre puede ser "Articulos" y para el caso de las características puede ser "Caracteristicas".
Toma nota en que columna tienes tu Lista. Si suponemos que la lista la tienes en la Columna A, entonces en la Hoja1 tendremos :
A1="Articulos"
B1="Caracteristicas"
Y a partir de A2, tus artículos.
Hoja2
A1="Articulos" (si fuera otro el nombre del encabezado de Artículos, lo pones aquí)
C1="Articulos" (si fuera otro el nombre del encabezado de Artículos, lo pones aquí)
D1="Caracteristicas" (si fuera otro el nombre del encabezado Características, lo pones aquí)
Nombra el Area A1:A2 a "Criterio". ¿Cómo?
     * Menu Insertar - Nombre - Definir...
     * Debajo de Nombres en el libro: escribe "Criterio"
     * En el campo Se refiere a : escribe: =Hoja2!$A$1:$A$2
Ya tienes el escenario. Ahora preparamos la rutina :
     * Abre el Editor de Visual Basic Alt-F11
     * En la ventana Proyecto que aparece, habitualmente en la parte centro-superior-izquierda de tu pantalla, ubica Hoja1(nombre-de-la-hoja) debajo de Microsoft Excel Objects y haz doble click.
     *En el módulo en blanco que aparece, copia el siguiente código:
          Private Sub Worksheet_Deactivate()
              Range("A1", Range("B65536").End(xlUp)).Name = "Datos"
          End Sub
Aquí suponemos que tu lista se encuentra en A y B. Si no fuera así, cambia la linea Range("A1", Range("B65536"). End(xlUp)). Name = "Datos" por la correcta.
     * En la misma ventana de Proyecto ubica Hoja2(nombre-de-la-hoja) debajo de Microsoft Excel Objects y haz doble click.
     * En el módulo en blanco que aparece, copia el siguiente código:
          Private Sub worksheet_Change(ByVal target As Range)
              If target.Address = "$A$2" Then
                  Ordenar
              End If
          End Sub
     * Ahora, en el Menú de Opciones, haz click en el Menu Insertar y luego selecciona Módulo.
     *En el módulo que aparece, copia el siguiente codigo :
     Sub ordenar()
         Application.ScreenUpdating = False
         Range("Datos").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
            "Criterio"), CopyToRange:=Columns("C:D"), Unique:=False
         Range("C1", Range("D65536").End(xlUp)).Name = "AreaImprimir"
         ActiveSheet.PageSetup.PrintArea = "AreaImprimir"
     End Sub
      * Cierra el Editor de Visual Basic
A probar... ingresa la letra "a" en A1 y pulsa {ENTER}. En la columna CyD debería aparecer los artículos que empiezan con "a". Si pulsas "al" {ENTER} en la columna CyD aparecen los artículos que empiezan con "al". El rango para imprimir se define automáticamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas