En esta lección, vas a aprender los comandos para insertar y eliminar filas y columnas de manera automática a tus hojas Excel utilizando macros. ¡Comenzamos!
1. Insertar filas y columnas.
Muchas veces nos encontramos con la necesidad de insertar filas (o eliminarlas) en función de un valor o cálculo. Hoy vamos a ver los comandos para hacerlo de forma automática, y más adelante, cuando veamos los condicionales, los asociaremos a una condición.
Para insertar una sola fila en una posición determinada, por ejemplo, en la fila 2, usaremos:
Cells(2,1).EntireRow.Insert
Basta con apuntar a la fila 2, es decir, da igual el valor que le demos a la columna. Por tanto, con el comando
Cells(2,9).EntireRow.Insert
obtendríamos el mismo resultado.
Para insertar una sola columna en una posición determinada, por ejemplo, en la columna B, usaremos:
Cells(1,2).EntireColumn.Insert
Basta con apuntar a la columna B, es decir, da igual el valor que le demos a la fila. Por tanto, con el comando
Cells(9,2).EntireColumn.Insert
obtendríamos el mismo resultado.
Si lo que queremos es insertar un rango de filas o columnas utilizando macros, usaremos:
Insertaría filas nuevas entre A2 y A4, es decir, 3 filas.
Mientras que,
insertaría columnas nuevas entre A2 y D2, es decir, 4 columnas.
2. Eliminar filas y columnas.
Para eliminar una sola fila de una posición determinada, por ejemplo, la fila 2, usaremos:
Cells(2,1).EntireRow.Delete
Basta con apuntar a la fila 2, como veíamos más arriba.
Para eliminar una sola columna de una posición determinada, por ejemplo, la columna B, usaremos:
Cells(2,1).EntireColumn.Delete
Basta con apuntar a la columna B, como veíamos más arriba.
Si lo que queremos es eliminar un rango de filas o columnas, usaremos:
Elimina las filas 2, 3 y 4.
Elimina las columnas A, B, C y D.
Vas a ver, con este ejemplo, qué fácil es insertar y eliminar filas y columnas usando macros.
En primer lugar, crea un nuevo libro Excel, abre el editor VBA, inserta 5 módulos y copia las siguientes macros en ellos.
Macro 1. Insertar una fila.
'Macro que inserta una fila en la posición 5 y asigna el contenido "Malaga" a la celda A5
Cells(5, 1).EntireRow.Insert 'Insertamos una fila nueva en la posición 5
Cells(5, 1).Value = "Malaga" 'Asignamos el valor "Malaga" a la celda A5
Cells(2, 1).Copy 'Copiamos la celda A2 "Barcelona"
Range("A5").Select 'Seleccionamos la celda A5 "Malaga"
'Aplicamos el formato de A2 a A5
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False 'Desactivamos el comando copiar
End Sub
Macro 2. Insertar dos columnas.
'Macro que inserta 2 columnas entre B y C, y asigna el contenido "Cafeteria" a B1 y "Aeropuerto" a C1
Range("C1:D1").EntireColumn.Insert 'Insertamos 2 columnas entre C y D
Cells(1, "C").Value = "Cafeteria" 'Asignamos el valor "Cafeteria" a la celda C1
Cells(1, "D").Value = "Aeropuerto" 'Asignamos el valor Aeropuerto a la celda D1
Cells(1, 2).Copy 'Copiamos la celda B1 "Restaurante"
Range("C1:D1").Select 'Seleccionamos las celdas C1 "Cafeteria" y D1 "Aeropuerto"
'Aplicamos el formato de B1 a C1 Y D1
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False 'Desactivamos el comando copiar
End Sub
Macro 3. Eliminar una columna.
'Macro que elimina la columna B
Cells(1, 2).EntireColumn.Delete 'Eliminamos la columna B
End Sub
Macro 4. Eliminar dos filas.
'Macro que elimina las filas 3 y 4
Range("A3:A4").EntireRow.Delete 'Borramos las filas 3 y 4
End Sub
Macro 5. Restaurar la configuración inicial de la página.
'Macro que restaura la configuración inicial de la página
Application.ScreenUpdating = False 'Desactivamos el refresco de pantalla
Range("A1:AA100").ClearContents 'Borramos el contenido de las celdas del rango A1-AA100
Cells(2, "A").Value = "Barcelona" 'Asignamos a la celda A2 el valor "Barcelona"
Cells(3, "A").Value = "Madrid" 'Asignamos a la celda A3 el valor "Madrid"
Cells(4, "A").Value = "Sevilla" 'Asignamos a la celda A4 el valor "Sevilla"
Cells(5, "A").Value = "Bilbao" 'Asignamos a la celda A5 el valor "Bilbao"
Cells(6, "A").Value = "Valencia" 'Asignamos a la celda A6 el valor "Valencia"
Range("A2:A6").Font.ColorIndex = 3 'Asignamos color rojo al texto del rango A2-A6
Range("A2:A6").HorizontalAlignment = xlCenter 'Alineamos horizontalmente el texto del rango A2-A6
Cells(1, "B").Value = "Restaurante" 'Asignamos a la celda B1 el valor "Restaurante"
Cells(1, "C").Value = "Museo" 'Asignamos a la celda C1 el valor "Museo"
Cells(1, "D").Value = "Salon Congresos" 'Asignamos a la celda D1 el valor "Salon Congresos"
Cells(1, "E").Value = "Hotel" 'Asignamos a la celda E1 el valor "Hotel"
Cells(1, "F").Value = "Parque" 'Asignamos a la celda F1 el valor "Parque"
Range("B1:F1").Font.ColorIndex = 10 'Asignamos color verde al texto del rango B1-F1
Range("B1:F1").HorizontalAlignment = xlCenter 'Alineamos horizontalmente el texto del rango B1-F1
Range("B2:B5").Value = "X" 'Asignamos al rango de celdas B2-B5 el valor "X"
Range("C3:C4").Value = "X" 'Asignamos al rango de celdas C3-C4 el valor "X"
Cells(6, 3).Value = "X" 'Asignamos a la celda C6 el valor "X"
Range("D2:F2").Value = "X" 'Asignamos al rango de celdas D2-F2 el valor "X"
Cells(3, "F").Value = "X" 'Asignamos a la celda F3 el valor "X"
Range("D5:E5").Value = "X" 'Asignamos al rango de celdas D5-E5 el valor "X"
Cells(6, "F").Value = "X" 'Asignamos a la celda F6 el valor "X"
Range("B2:F6").HorizontalAlignment = xlCenter 'Alineamos horizontalmente el texto del rango B2-F6
Application.ScreenUpdating = True 'Activamos el refresco de pantalla
End Sub
Seguidamente, rellena la hoja con los valores que se muestran a continuación y crea cinco botones asociados a las cinco macros que acabamos de copiar. Debería quedarte algo así:
Al ejecutar la primera macro, vemos como se añade una nueva fila en la posición 5, y se le asigna el valor “Malaga” a la celda A5. Si te fijas en el código, también restablecemos el formato de celda, copiándolo de otra.
Con la segunda macro, se añaden automáticamente dos nuevas columnas en las posiciones C y D, y se le asigna a la celda C1 el valor “Cafetería” y a la celda D1 el valor “Aeropuerto”. También aquí restablecemos el formato de la celda, copiándolo de otra.
La tercera macro elimina la columna B.
La cuarta macro elimina las filas 3 y 4.
Con la quinta macro restablecemos la hoja con los valores iniciales.
En esta macro he utilizado dos formas diferentes de asignar valores a celdas, y también he aprovechado para refrescar lo aprendido en la Lección 7 sobre cómo automatizar los cambios de atributos de formato en celdas.
Con esto llegamos al final de la octava lección, en la que has aprendido a insertar y eliminar filas y columnas usando macros.
Espero que te esté gustando el curso y que me plantees cualquier duda que te surja. También puedes proponerme macros que te interese desarrollar y las voy incluyendo en el temario, soy todo oídos. Nos vemos en el próximo capítulo.
Descarga el archivo del ejemplo
« L7. Automatizar el formato de una celda con macros.
L9. Combinar celdas con macros. »
Por favor, ayúdame y haz clic en el anuncio 😉
Quizá te interese,
0 comentarios