jueves, 23 de noviembre de 2017

Borrar celdas con macro

Puede descargar el archivo BorrarCelda.xlsm

Deseamos borrar el contenido de una celda o de un rango de celdas utilizando una macro de Excel con código VBA.

Si deseamos borrar la celda A1 podemos utilizar cualquiera de estas líneas.

1:  Range("A1") = Empty  
2:  Range("A1").ClearContents  
3:  Range("A1").ClearFormats  
4:  Range("A1").Clear  


  • Las líneas 1, 2 son equivalentes y borran únicamente el contenido de la celda, pero no borran el formato.
  • La línea 3 borra únicamente el formato de la celda.
  • La línea 4 borra todo, tanto el contenido como el formato.
En el siguiente caso disponemos de tres botones de macro. Veamos qué hace cada uno de ellos.

  • Rellenar Valores: deja la fórmula aleatorio.entre en las celdas amarillas, rellenando con valores aleatorios que van ente 200 y 300.
  • Borrar celda: elige una celda al azar de entre las amarillas y borra su contenido.
  • Borrar rango: borra el contenido del rango C5:C13.
Las celdas amarillas al quedar vacías adquieren color rosa. Esto se consigue utilizando 'Formato condicional'.


Veamos las macros sobre las que actúan los botones.


 Sub RellenarValores()  
 Dim i As Byte  
 For i = 1 To 9  
  Cells(i + 4, "C") = ["=RANDBETWEEN(200,300)"]  
 Next i  
 End Sub  
 Sub BorrarCelda()  
 Cells(Int(Rnd * 9 + 1) + 4, "C") = Empty  
 End Sub  
 Sub BorrarRango()  
 [C5:C13] = Empty  
 End Sub  

Buscar la última fila con macro

Puede descargar el archivo ultimaFila.xlsm

Cuando buscamos la última fila rellena de un rango de valores que se encuentran en una columna podemos usar el siguiente código.

 UltimaFila = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row  



Este ejemplo está aplicado sobre la columna A. Nos dará la última fila de la columna A que contenga un valor no vacío, aunque en la columna A existan previamente huecos, esto es, aunque previamente existan celdas vacías.