Teoria Excel Macros 01

7
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.

Transcript of Teoria Excel Macros 01

Page 1: 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.

Page 2: 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. 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.

Page 3: 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. 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

Page 4: 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. 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.

Page 5: 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. 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.

Page 6: 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. 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

Page 7: 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. 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”.