Teoria Excel Macros 01
-
Upload
jesus-emanuel -
Category
Documents
-
view
32 -
download
0
Transcript of Teoria Excel Macros 01
Fundamentos de informática. Tema: Excel. – MACROS -
Ing. Eléctrica.
Jefe de Cátedra: Ing. Kuzmicich Damián.
J.T.P: Arce Gerardo. Pág. 1 de 7
Paso Nº 1.
Cargar las 2 barras que vamos a utilizar.
Formularios.
Visual Basic.
Fundamentos de informática. Tema: Excel. – MACROS -
Ing. Eléctrica.
Jefe de Cátedra: Ing. Kuzmicich Damián.
J.T.P: Arce Gerardo. Pág. 2 de 7
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.
Fundamentos de informática. Tema: Excel. – MACROS -
Ing. Eléctrica.
Jefe de Cátedra: Ing. Kuzmicich Damián.
J.T.P: Arce Gerardo. Pág. 3 de 7
> 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
Fundamentos de informática. Tema: Excel. – MACROS -
Ing. Eléctrica.
Jefe de Cátedra: Ing. Kuzmicich Damián.
J.T.P: Arce Gerardo. Pág. 4 de 7
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 <
Range("C2").Select
> Pagamos <
ActiveSheet.Paste
Se ajusta el auto
filtro
de 250 a 500 y se
coloca en la
columna
correcta.
Fundamentos de informática. Tema: Excel. – MACROS -
Ing. Eléctrica.
Jefe de Cátedra: Ing. Kuzmicich Damián.
J.T.P: Arce Gerardo. Pág. 5 de 7
> 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.
Fundamentos de informática. Tema: Excel. – MACROS -
Ing. Eléctrica.
Jefe de Cátedra: Ing. Kuzmicich Damián.
J.T.P: Arce Gerardo. Pág. 6 de 7
> 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
> Tocamos Control + shift + ↓ <
Range(Selection, Selection.End(xlDown)).Select
> Tocamos en el botón AZ esto ordena de mayor a menor <
Selection.Sort Key1:=Cells(2, a + 1), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom
Con esto
seleccionamos
y ordenamos
de menor a
mayor
Fundamentos de informática. Tema: Excel. – MACROS -
Ing. Eléctrica.
Jefe de Cátedra: Ing. Kuzmicich Damián.
J.T.P: Arce Gerardo. Pág. 7 de 7
> 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”.