Paso Nº 1.
Cargar las 2 barras que vamos a utilizar.
Formularios.
Visual Basic.
Vamos a tratar de explicar el problema del examen.
Trataremos de copiar números aleatorios uno de bajo de otro.
1) En “B2” colocar el texto “Nº Lista =” y en “E2” colocar el texto “Lista”
2) En “C3” Crear una función de números aleatorios que tengan un rango de 0 a 999 sin decimales.[=REDONDEAR(ALEATORIO()*1000;0)]
3) Crear un botón LISTA, que compile tantas veces como se coloque en la celda “C2”
4) Ahora todo depende de crear las macros. Obviamente el botón grabar no nos va a solucionar la vida por completo por nos dará una gran ayuda a la hora de no conocer un código.
Cómo es esto? Fácil tocamos en REC hacemos nosotros paso a paso lo que queremos que la PC haga y luego editamos el código a nuestra conveniencia.
5) TOCAMOS REC Y HACEMOS DICHOS PASOS:
Sub Lista() Se crea el
comando Lista > Seleccionamos E3 <
Range("E3").Select
> Tocamos Control + shift + ↓ <
Range(Selection, Selection.End(xlDown)).Select > Tocamos Suprimir <
Selection.ClearContents > Vamos a la hoja DATA <
Sheets("Data").Select
> Seleccionamos las filas de a 3 a la 500 <
Rows("3:500").Select
> Botón secundario Eliminar filas <
Selection.Delete Shift:=xlUp
> Ahora nos paramos en una celda especifica para
que desaparezca la selección de todo lo que eliminamos <
Range("A1").Select
> Vamos a la hoja LISTA <
Sheets("Lista").Select
Lo que hace este
comando es borrar las listas anteriores para que no se
superpongan con las nuevas.
> Esto lo colocamos a mano ya que el botón REC no sirve para hacer programación solo para ayudarnos,
este comando lo que hace es que la variable “a”
varié de 1 hasta lo que diga C2 <
For a = 1 To Range("C2")
> Seleccionamos C3 <
Range("C3").Select
> Seleccionamos C3 <
Selection.Copy
> Seleccionamos una celda que varia dependiendo de una variable en este caso “a” <
Cells(a + 2, 5).Select
> Elegimos la opción Pegar solo texto <
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
> Tipiamos el fin de la instrucción del FOR esto indica que el bucle se repetirá tantas veces como se lo indique pero solo lo que se encuentre entre For y Next <
Next
Esto crea la
compilación de la lista de 1 hasta el numero que
nosotros la digamos.
> Ahora nos paramos en una celda especifica <
Range("A1").Select
Esto hace que el cursor se posicione arriba y no se tenga que subir a mano.
End Sub Fin del
comando LISTA
6) Crear un botón ENCOLUMNAR, que solo seleccione números específicos y los encolumne en la hoja de calculo “DATA”.
7) Data tendrá 4 columnas para compilar o sea que tipiamos tal cual lo que tenemos en las celdas B1, C1, D1 y E1 el texto siguiente.
0 < x <= 250 250 < x <= 500 500 < x <= 750 750 < x <= 1000
Sub Encolumnar() Se crea el comando Encolumnar > Seleccionamos E2 la cual va a controlar e filtro <
Range("E2").Select
> Tildamos el en datos>filtro>Autofiltro <
Selection.AutoFilter
Se coloca el auto filtro
> Ajustamos el autofiltro entre 0 y 250 <
Selection.AutoFilter Field:=1, Criteria1:="<=250", Operator:=xlAnd
> Seleccionamos las filas especifica de a E3 a la E500 <
Range("E2:E500").Select > Copiamos la selección <
Selection.Copy
> Vamos a la hoja DATA <
Sheets("Data").Select
> Seleccionamos B2 que es la columna que e corresponde <
Range("B2").Select > Pagamos <
ActiveSheet.Paste
Se ajusta el auto filtro
de 0 a 250 y se coloca en la columna correcta.
> Vamos a la hoja LISTA <
Sheets("Lista").Select
> Ajustamos el autofiltro entre 250 y 500 <
Selection.AutoFilter Field:=1, Criteria1:=">250", Operator:=xlAnd, _
Criteria2:="<=500"
> Seleccionamos las filas especifica de a E3 a la E500 <
Range("E2:E500").Select
> Copiamos la selección <
Selection.Copy
> Vamos a la hoja DATA <
Sheets("Data").Select
> Seleccionamos C2 que es la columna que e corresponde <
Se ajusta el auto filtro
de 250 a 500 y se coloca en la columna correcta.
> Vamos a la hoja LISTA <
Sheets("Lista").Select
> Ajustamos el autofiltro entre 500 y 750 <
Selection.AutoFilter Field:=1, Criteria1:=">500", Operator:=xlAnd, _
Criteria2:="<=750"
> Seleccionamos las filas especifica de a E3 a la E500 <
Range("E2:E500").Select
> Copiamos la selección <
Selection.Copy
> Vamos a la hoja DATA <
Sheets("Data").Select
> Seleccionamos D2 que es la columna que e corresponde <
Range("D2").Select
> Pagamos <
ActiveSheet.Paste
Se ajusta el auto filtro
de 500 a 750 y se coloca en la columna correcta.
> Vamos a la hoja LISTA <
Sheets("Lista").Select
> Ajustamos el autofiltro entre 750 y 1000 <
Selection.AutoFilter Field:=1, Criteria1:=">750", Operator:=xlAnd, _
Criteria2:="<=1000"
> Seleccionamos las filas especifica de a E3 a la E500 <
Range("E2:E500").Select
> Copiamos la selección <
Selection.Copy
> Vamos a la hoja DATA <
Sheets("Data").Select
> Seleccionamos E2 que es la columna que e corresponde <
Range("E2").Select
> Pagamos <
ActiveSheet.Paste
Se ajusta el auto filtro
de 750 a 1000 y se coloca en la columna correcta.
> Vamos a la hoja LISTA <
Sheets("Lista").Select
> Seleccionamos E2 la cual controla el filtro <
Range("E2").Select
> Destidamos la opción autofitro <
Selection.AutoFilter
Se vuelve a la hoja de calculo Lista y se quita el auto filtro
> Vamos a la hoja DATA <
Sheets("Data").Select
> Ahora nos paramos en una celda especifica <
Range("A1").Select
Se va a la hoja de cálculo Data y se posiciona en F1
End Sub Fin del comando
ENCOLUMNAR
8) Una vez que se genere la lista y se separare en 4 columnas. Crear otro botón A-Z que ordene de mayor a menor las 4 columnas y que le de un borde y color amarrillo a las celdas.
Sub a_z() Se crea el
comando A-Z
For a = 1 To 4 Repetimos el
proceso 4 veces con el comando FOR para las 4 columnas > Seleccionamos una celda que varia dependiendo
de una variable en este caso “a” <
Cells(2, a + 1).Select
> Coloquemos los bordes accediendo a las propiedades tocando Control+1 <
With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium
.ColorIndex = xlAutomatic End With
Colocamos el borde Izquierdo
With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium
.ColorIndex = xlAutomatic End With
Colocamos el borde Superior
With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic End With
Colocamos el borde Inferior
With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic End With
Colocamos el borde Derecho
With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic End With
Colocamos el borde entre filas
With Selection.Interior .ColorIndex = 6 .Pattern = xlSolid End With
Pintamos de Amarillo o sea
ColorIndex = 6
Next Cerramos el
comando FOR
End Sub Fin del
comando A-Z Esperáramos que haya quedado clara la explicación de cómo utilizar las “MACROS”.