Seleccionar una celda o rango de celdas es una operación usual que se realiza antes de hacer otras acciones, como establecer un área de impresión, dar formatos, ordenar un conjunto de datos, etc. Para ello, usaremos las propiedades Range o Cells, que nos sirven además para referenciar celdas mientras se programa Excel con VBA, y así indicar sobre qué celdas se debe buscar o realizar algún evento.
Por ejemplo, para definir explícitamente un rango a seleccionar, se puede usar la siguiente macro:
Sub Macro1()
Range ("B2:B10").Select
End Sub
Después de que el rango de celdas es seleccionado, se puede hacer diferentes acciones como cambiar su formato (color de fuente, tamaño de letra, negrita, subrayado, cursiva, darle formato de número o fecha, etc). A continuación, se mostrará un ejemplo para demostrar cómo definir cada uno de ellos:
(Para mayor visualización de la imagen, hacer click en la misma)
Nota: No es necesario memorizar todas las propiedades de las celdas (los códigos), ya que se puede primero usar el grabador de macros, y cuando comience la grabación, proceder a dar formato a las celdas. Luego, se puede mirar el código generado automáticamente por Excel en VBA.
De la macro anterior, notamos que la palabra "Selection" se repite en todas las sentencias, por lo que se puede hacer más eficiente esta macro si se usa la estructura With...End With, de la siguiente manera:
(Para mayor visualización de la imagen, hacer click en la misma)
Otra manera de seleccionar un rango es usando Cells del objeto Rango, como se hizo en esta última macro. Esta requiere las posiciones fila, columna según: Cells(fila, columna); por ejemplo, a la celda D5, le correspondería Cells(5,4).
Además, notamos que con la macro, se puede dar formato sin necesariamente seleccionar el rango antes, es por ello que se digitó "With Range(Cells(2, 2), Cells(10, 2))", en lugar de "With Range(Cells(2, 2), Cells(10, 2)).Select", y esta es una ventaja de automatizar las acciones con las macros, pues además de ahorro de tiempo, es eficiente.
Por: Katherine Yahaira Quintero Garibay
24/06/2016 a las 11:42 am
excelente código faltaría agregar a mi gusto
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
en vez de fondo (azul petróleo) por lo de la impresión en papel
saludos
30/05/2017 a las 11:07 am
Hola, me pueden ayudar con este problema:
Al copiar una lista de textos en la columna A, quisiera eliminar todas las filas que no contienen ciertas palabras (por ejemplo las palabras "azul" y "verde") dentro de la celda Ai, i =1,..., n. Además quisiera que distinga entre mayúsculas y minúsculas.
Ejemplo:
Si en la celda A1 dice "tengo un lápiz Azul", entonces mantener esa fila, porque dentro de la celda A1 se encuentra la palabra "lápiz"
Si en A2 dice "la VERDE planta", entonces mantener esa fila, porque dentro de la celda A2 se encuentra la palabra "verde"
Si en A3 dice "¿hola, como estás?" entonces eliminar esa fila, porque dentro de la celda A3 no se encuentran ni "azul" ni "verde"
.
.
.y así sucesivamente..
De antemano muchas gracias
11/03/2021 a las 5:02 pm
Hola.gracias por escribir, mi nesidad es dar formatos por columas. Formato de miles.
Número. Etc.
Hago una macro para ello.pero cuando necesito aplicar el formato a otra columna , me lleva a la columna dónde grabé la macro. Cómo hago para que me aplique el formato a la que yo decida. Gracias.
14/12/2022 a las 11:46 am
Yo tengo una macro con un botón para dar un formato específico a una celda seleccionada. Ejemplo:
Sub Fondoazul()
'
ActiveCell.Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 15773696
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
Pero tengo que ir seleccionando una a una las celdas y ejecutar macro. ¿Como puedo seleccionar un rango cualquiera y dar ese mismo formato a todas las celdas.?