Macro en Excel para restablecer formato de celdas, usando formulario con opciones combinables
En ocasiones me he topado con archivos de Excel en los que requiero eliminar algún formato, es decir, dejar el formato por default de celdas. Hacer esta tarea en Excel es relativamente sencilla, como lo veremos a continuación.
Restablecer formatos de celdas con las opciones de Excel
La primera opción que podemos usar para restablecer formatos de celdas es usando la opción Borrar formatos dentro de INICIO > Borrar.
Figura 1. Borrar formatos en Excel
La siguiente opción que podemos usar es Copiar y Pegar el formato de una celda sin formato a las celdas que queramos restablecer el formato.
Figura 2. Copiar y pegar formatos en Excel.
Elegir los formatos a restablecer con macros en Excel
Como vimos en las opciones anteriores, Excel nos permite restablecer formatos de celdas, con la salvedad de que restablece todo a su formato original.
He desarrollado un formulario en Excel vba en el que podemos elegir el tipo de formato que queramos restablecer mediante 5 Cuadros de opción.
Cómo funciona
El formulario contiene 5 CheckBoxes los cuales nos van a permitir restablecer hasta 6 opciones de Formato de celdas. Éstos controles nos permitirán hacer combinaciones. Las opciones que se podrán restablecer son:
-
Formato de número.
-
Alineación.
-
Tipo y color de fuente.
-
Bordes.
-
Relleno.
Las opciones anteriores también se podrán encontrar en Formato de celdas con la combinación [Ctrl] + 1.
Figura 3. Restablecer formatos de celda con macros en Excel.
Código de las macros de vba
Código del formulario
'--------------------------------------------------------------------------------------- ' Module : frmFormato ' Author : MVP Sergio Alejandro Campos ' Date : 21/08/2015 ' Purpose : Formulario para restablecer formatos de celdas '--------------------------------------------------------------------------------------- ' 'Mandar llamar el Procedimieno para restablecer Formatos Private Sub CommandButton1_Click() ' Call RestablecerFormatos ' End Sub ' 'Cerrar el Formulario Private Sub CommandButton2_Click() ' Unload Me ' End Sub ' 'Elegir todas las opciones del Formulario Private Sub CommandButton3_Click() ' With Me .chkAlineacion.Value = True .chkBordes.Value = True .chkFuente.Value = True .chkNumero.Value = True .chkRelleno.Value = True End With ' End Sub
Código del Módulo1
'--------------------------------------------------------------------------------------- ' Module : Módulo1 ' Author : MVP Sergio Alejandro Campos ' Date : 21/08/2015 '--------------------------------------------------------------------------------------- ' Sub LlamarFormulario() 'Mandar llamar el formulario frmFormato.Show vbModal = False ' End Sub ' Sub RestablecerFormatos() ' 'Restablecer Formato de número If frmFormato.chkNumero.Value = True Then ' For Each Celda In Selection ' If IsDate(Celda.Value) Then Celda.NumberFormat = "d-mmm" Else Celda.NumberFormat = "General" End If Next Celda ' End If ' 'Restablecer Alineación If frmFormato.chkAlineacion.Value = True Then ' With Selection .HorizontalAlignment = xlGeneral .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With ' End If ' 'Restablecer Fuente If frmFormato.chkFuente.Value = True Then ' With Selection.Font .Name = "Calibri" .FontStyle = "Normal" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 .ThemeFont = xlThemeFontMinor End With ' End If ' If frmFormato.chkBordes.Value = True Then ' With Selection .Borders(xlDiagonalDown).LineStyle = xlNone .Borders(xlDiagonalUp).LineStyle = xlNone .Borders(xlEdgeLeft).LineStyle = xlNone .Borders(xlEdgeTop).LineStyle = xlNone .Borders(xlEdgeBottom).LineStyle = xlNone .Borders(xlEdgeRight).LineStyle = xlNone .Borders(xlInsideVertical).LineStyle = xlNone .Borders(xlInsideHorizontal).LineStyle = xlNone End With ' End If ' 'Restablecer color de relleno If frmFormato.chkRelleno.Value = True Then ' With Selection.Interior .Pattern = xlNone .TintAndShade = 0 .PatternTintAndShade = 0 End With ' End If ' End Sub