Macros de Excel

6 macros básicos de Excel que debes conocer

Las macros de Excel nos sirven para automatizar tareas que usamos de forma frecuente en Excel. Las macros pertenecen a la parte de programación que posee Excel,  para la que tenemos que tener un conocimiento más avanzado y ser expertos en Excel, pero una vez aprendamos sobre código y lo dominemos nos alegraremos del tiempo que ahorraremos ejecutando macros, sin tener que hacer demasiadas tareas.

En el artículo de hoy queremos hablarte de algunos macros que consideramos más básicos y que deberías conocer si quieres sumergirte en este mundo, se trata de macros que nos permitirán hacer tareas muy comunes, que seguro tengamos que hacer en más de una ocasión, si somos usuarios habituales de Excel.

Macros de Excel más utilizados

  1. Macro para copiar el contenido seleccionado de una hoja en otra: seguro que más de una vez necesitas tener el mismo contenido de una hoja de Excel en otra. Existen funciones para ello, pero al final llenamos nuestra hoja de demasiadas fórmulas. Por eso, te queremos enseñar cómo hacerlo con una macro. Debemos seleccionar el contenido que queremos copiar y después utilizar el código siguiente en la macro.

Sub CopiaColumnas()
Dim mirango As Range
Dim col As Range
Dim NuevaHoja As Worksheet
Dim i As Integer

Set mirango = Selection

Worksheets.Add
i = 0
For Each col In mirango.Columns
col.Copy ActiveSheet.Range(“A1”).Offset(, i)
i = i + 1
Next col

End Sub

 

¡Recuerda que tendrás que actualizar este código con tus datos!

  1. Macro para imprimir una hoja: si queremos imprimir la hoja activa con datos, también podemos utilizar macros. A continuación, te ponemos cómo sería el código. Como ves en el código, podemos establecer el número de copias que queremos hacer de esa hoja.


Sub macro imprimir_ha()

Range(“A1”) = “Lo que sea”
‘Imprimimos la hoja de excel con una sola copia
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub

  1. Macro para suprimir filas vacías: a veces nos damos cuenta que en nuestra hoja de Excel sobran demasiadas filas de Excel vacías. Si fueran pocas, 1 o 2, bastaría con seleccionarla y con el botón derecho, marcando la fila, seleccionar del menú Eliminar. Sin embargo, cuando son muchas filas, perderíamos demasiado tiempo haciéndolo así, con lo que lo mejor sería usa una macro.

Dim intNumDeFilas As Long

Selection.SpecialCells(xlCellTypeLastCell).Select
intNumDeFilas = Selection.Row
For i = 1 To intNumDeFilas
If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then
Rows(i).Delete
End If
Next

intUltimaFila = ActiveSheet.UsedRange.Row – 1 + ActiveSheet.UsedRange.Rows.Count

For r = intUltimaFila To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r

  1. Macro para para guardar archivo seleccionando la ubicación: también podemos utilizar una macro para guardar archivo seleccionando la ubicación de donde lo queremos guardar. Te mostrarnos el código:

 Sub guardar_archivo()
Dim stArchivo
stArchivo = Application.GetOpenFilename(“Hoja de Excel , *.xls*”, _
, “Seleccione archivo “)

End Sub

 

  1. Macro para aplicar formato a un rango de celdas: si queremos aplicar un formato a las celdas que seleccionamos, por ejemplo, el tamaño de fuente y en negrita, también podemos hacerlo a través de macros. Con esto evitaremos tener que ir aplicando el formato :

Range(“A1:A5”).Select
Selection.Font.Bold = True ‘negrita
Selection.Font.Size = 12 ‘tamaño de fuente
Selection.Font.ColorIndex = 5 ‘asigna color
Selection.Font.UnderLine = xlUnderlineStyleDoubleAccounting

  1. Macro para crear índice del libro de Excel: cuando trabajamos en un libro de Excel con gran cantidad de hojas, puede que necesitemos crear un índice que nos lleve a la hoja que deseemos, el cual pondremos en la primera hoja. A continuación te mostramos cómo hacerlo a través una macro creada para ello:

Private Sub Worksheet_Activate()

Dim cHoja As Worksheet

Dim L As Long

L = 1

With Me

.Columns(1).ClearContents

.Cells(1, 1) = “INDICE”

.Cells(1, 1).Name = “Indice”

End With

For Each cHoja In Worksheets

If cHoja.Name <> Me.Name Then

L = L + 1

With cHoja

.Range(“A1″).Name = “Inicio” & cHoja.Index

.Hyperlinks.Add Anchor:=.Range(“A1″), Address:=” “, SubAddress:=”Indice”, TextToDisplay:=”Volver al índice”

End With

Me.Hyperlinks.Add Anchor:=Me.Cells(L, 1), Address:=” “, SubAddress:=”Inicio” & cHoja.Index, TextToDisplay:=cHoja.Name

End If

Next cHoja

End Sub

Estos son solo algunos ejemplos de macros básicos, que te pueden facilitar mucho el trabajo con Excel, en otros artículos te mostraremos más. Y por último, recuerda optimizar la macros  ¡Hasta la próxima!