La macro fue diseñada con el objetivo de facilitar la
búsqueda de productos para nuestro proyecto final, puesto que se cuenta con una
gran variedad de estos los cuales están clasificados de acuerdo a familias de
productos. Aquí es donde radica su utilidad, por lo que puede ser aplicado para
segmentos en donde la diferenciación de cada producto es muy alta y nos sirve
para darle un orden en la base de datos. También se le agregaron macros para
identificar cada uno de los atributos de los productos, de este modo con un
solo clic podemos apreciar una lista con cada uno de las especificaciones.
En primer lugar para poder obtener en una nueva hoja de
cálculo la lista de productos y de los atributos posibles, fue utilizada la
función “While” en conjunto con la función “If” la cual nos es útil para
traspasar información siempre y cuando se cumplan las condiciones
especificadas, en este primer caso se requiere que las celdas no estén vacías y
sus valores sean distintos de cero, mientras que el “While” nos permite
realizar este traspaso de información uno por uno hacia abajo en la columna:
Worksheets("Hoja1").Activate
c = 3
a = 5
f = 2
a = 5
f = 2
While (f < 3000)
If Cells(f, 2) <> 0 And Cells(f, 2)
<> " "
Then
Worksheets("Hoja2").Cells(a,
c) = Cells(f, 2)
End
If
f
= f + 1
a
= a + 1
En donde “f” representa la fila en la cual se empieza a realizar
el traspaso de información de la hoja de origen, mientras que a representa la
fila destinataria en la nueva hoja de cálculo. Adicional a esto se le agrego la
función para limpiar la pantalla de datos para que esta se pueda realizar desde
cero cuando se estime conveniente. Luego al agregarle botones de ejecución para
las macros el Excel queda de la siguiente forma:
Posterior a esto, como los productos que utilizaremos en
nuestro proyecto se clasifican en : Valvulas, Accesorio de Calderas,
Instrumentacion y Automatizacion; para facilitar la búsqueda de estos según
categorías se le adicionó un condicional para que estos se traspasen en
columnas distintas según la familia a la cual pertenecen. Para esto fue
requerido adicionar tambien comandos para eliminar espacios en blanco y de
ordenación apra que estos se ubiquen sin depende de su orientación en la hoja
de origen; para esto fue útil programas eliminación de duplicados y de
ordenamiento:
Worksheets("Hoja1").Activate
c = 2
a = 4
f = 2
a = 4
f = 2
While (f < 3000)
If
Cells(f, 5).Value = 1 And Cells(f, 2) <> 0 And Cells(f, 2) <>
" " Then
Worksheets("Hoja3").Cells(a,
c) = Cells(f, 2)
End
If
f
= f + 1
a
= a + 1
Wend
Worksheets("Hoja3").Activate
ActiveSheet.Range("$B$4:$B$1520").RemoveDuplicates
Columns:=1, Header:=xlNo
ActiveWorkbook.Worksheets("Hoja3").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Hoja3").Sort.SortFields.Add
Key:=Range("B4"), _
SortOn:=xlSortOnValues,
Order:=xlAscending, DataOption:=xlSortNormal
With
ActiveWorkbook.Worksheets("Hoja3").Sort
.SetRange
Range("B4:B1520")
.Header
= xlGuess
.MatchCase = False
.Orientation
= xlTopToBottom
.SortMethod
= xlPinYin
.Apply
End
With
Al igual que en el caso anterior, se le agrego una macro
para limpiar la hoja para que se pueda utilizar desde cero, además de agregarle
un botón de ejecución de la clasificación de productos, quedando de la
siguiente forma:
En mi opinión, si bien la programación es bastante simple,
creo que el alcance de estas funciones puede otorgar un manejo de información
mucho más eficiente, organizando productos dependiendo los atributos que estos
posean, que facilite de esta forma la búsqueda de estos con mayor rapidez dependiendo
sus funcionalidades y además permitiendo el traspaso de información de manera
automatizada.
https://www.dropbox.com/s/pson9hg9sfwm9sy/Macros%20Blog.xlsm
En esta direccion pueden descargar el excel habilitado para macro, para que puedan ver el detalle de la programacion, es bastante simple si se realiza un correcto uso de variables locales. Saludos.
No hay comentarios:
Publicar un comentario