Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

5 macros para el manejo de rangos en Excel

| 3 comentarios

1 Alterna bandas de colores con Macros

En Excel existen distintas maneras de poder diferenciar filas pertenecientes a un rango, para ello es necesario identificar el uso para realizar determinada acción.

El uso de esta macro permite gestionar la presentación y apariencia de un rango o tabla, es importante resaltar que se puede asignar cualquier color y/o combinaciones de color según la tabla de colores.

 1 .1 Dar Formato a tablas

Mediante el comando descrito se puede dar el evento requerido, pero con la restricciones de los colores estándares según modelos predefinidos.

Tabla de celdas

1.2Macro Alterna bandas

La creación de una macros conlleva a personalizar el tipo de colores a definir asi como también el alcance inclusive a celdas sin valores.

Sub rango_colores()
'Se declara las variables tipo rango
Dim rangoini, filaran As Range

'Se define el rango
Set rangoini = Range("A2:C6")

'activar cada celda en el rango objetivo
For Each filaran In rangoini.Rows

'verificar si el numero de la fila par o no
' (Mod "X" = 0) Se utiliza para definir si es multiplo de "X"
If filaran.Row Mod 2 = 0 Then

'aplicar color intercalado
'Cada numero significa un color segun la escala RGB(Red-Green-Blue)
filaran.Interior.ColorIndex = 15
Else
filaran.Interior.ColorIndex = 17
End If

'regresar a la siguiente fila
Next filaran

End Sub

 

FOTO2

 

Cuando se ejecuta la macro cambiara a:

FOTO3

 

 

2. Rango habilitado

La siguiente permite restringir la edición de un determinado rango de celdas.

La aplicación es necesaria cuando se requiere bloquear el contenido que no se quiere modificar, limitando el área de trabajo a medida del usuario.  Es recomendable esta macro ya que la opcion de bloquear hoja o libro no permite trabajar en ninguna celda.

Código:

Private Sub Workbook_Open()
'Definir rango a bloquear de la hoja a elegir

Sheets("hoja2").ScrollArea = "A1:f6"

End Sub

FOTO21

 

3. Crear formato a rango con nombre

Esta macro sirve para dar formato a aquellos rangos que se encuentren con nombres.

Realiza la búsqueda de los rangos que tienen nombre dentro de la hoja activa

3.1 Dar nombre a los rangos que se va a dar formato.

Rango1="TITULO"

RANGO1

Rango2="DEPART"

RANGO2

Rango3="Region"

RANGO3

 

3.2 Creación de la macro.

Codigo:

Sub crea_formato_rango()
'Se declaran las variables temporales
' almacenaran informacion de las tablas con datos
Dim RangeName As Name
Dim HighlightRange As Range

'Controlar errores
On Error Resume Next

'Realiza la iteracion y almacena el rango con nombre
For Each RangeName In ActiveWorkbook.Names
Set HighlightRange = RangeName.RefersToRange

'Da el formato al rango que tiene nombre
HighlightRange.Interior.ColorIndex = 6

'Realiza la nueva busqueda de rango con nombre
Next RangeName

End Sub

 

RANGO4

 

 4. Copiar Rango

Esta macro nos permite copiar rangos en una misma hoja, ya que muchas veces se necesita informacion para completar otra tabla. A diferencia de "Copiar y Pegar" esta macro permite realizar dichos pasos incluyendo los valores y formatos definidos en el rango base.

4.1

Codigo
Sub copiar_celdas()

Range("A2:A6").Copy Range("A10:A14")

End Sub

 

RANGO5

 

5. Ordenar valores en un rango

Muchas veces hemos aplicado la función ordenar datos ya sea numéricos y/o alfabéticos en forma ascendente o descendente a fin de generar un valor agregado a los informes o tablas que se trabajan.

Para ello se define el siguiente código

' Ordenar Ascendente

Sub OrdenarRangoAsc()
Range("A3:A7").Sort Key1:=Range("A4:A7"), Order1:=xlAscending, Header:=xlYes
End Sub

 

'Ordenar descendente

Sub OrdenarRangoDesc()
Range("A3:A7").Sort Key1:=Range("A4:A7"), Order1:=xlDescending, Header:=xlYes
End Sub

Cabe recalcar que el ordenamiento lo llevara a cabo en el rango descrito en la hoja activa

Atte.

Erik Quispe Durand

3 comentarios

  1. Hola,
    Quiero hacer una macro que copie un rango variable a otra hoja de cáculo. Muchas gracias.

  2. Como puedo hacer que una fila que tenga coincidencia con un valor en una celda cambie de color con un macro, no formato condicional

  3. Nombre de columnas en "E5" pongo A y al presionar un boton toda la fila de "A:C" que contiene "A" cambia a color rojo
    A 1 AB
    B 2 AC
    C 3 AD
    D 4 AE
    E 5 AF
    F 6 AG
    G 7 AH

Deja una respuesta

Los campos requeridos estan marcados con *.