Obtener código vba de la grabadora de macros de Excel y usarlo en tus proyectos
Como siempre he dicho “Si no sabes cómo hacerlo, usa la grabadora de macros”. Y precisamente este artículo trata de esto, de obtener código de una macro con la grabadora de macros, sobretodo si tenemos duda o de plano no saber cómo hacer una acción en Excel con macros.
El código en cuestión que necesito obtener es el código que me permitirá hacer búsquedas desde un formulario diseñador por mi; la misma búsqueda que se realiza al presionar la combinación de teclas [Ctrl] + [B].
Tenemos un archivo de ejemplo donde la columna A contiene diferentes opciones de turno a laborar: matutino, vespertino y nocturno. Aunque lo más importante del archivo es que usaremos la herramienta Buscar y Reemplazar para obtener su código vba.
Figura 1. Ejemplo de archivo para Grabar una macro.
Grabar la macro
Para grabar la macro nos vamos a la pestaña Vista. Dentro de esa pestaña elegimos la opción Macros > Grabar macro. No hacemos ninguna modificación en las opciones del formulario, sólo validar el nombre de la macro y el lugar dónde se guardará, para que sepamos después dónde buscarla.
Presionamos Aceptar y a partir de ese momento “casi todo” lo que hagamos en Excel generará un código vba; una macro.
Figura 2. Grabadora de macros en Excel
En la Figura 2 vimos cómo grabar una macro. Ahora que sabemos que se generó una macro llamada Macro8 nos vamos al editor de vba para ver el código generado. Presionamos [Alt] + [F8] y damos doble clic sobre el Módulo1 para que se muestre la macro.
Figura 4. Código generado con la Grabadora de macros
Video tutorial
Adecuar el código de la grabadora de macros a nuestro proyecto
Bien, ahora que tenemos el código vba de Buscar y Reemplazar, ahora lo usaremos en un formulario propio que simulará la misma acción de Buscar.
Figura 3. Formulario vba para replicar Buscar y Reemplazar.
El botón Buscar tendrá el código que se generó con la Grabadora de macros, pero en lugar de que busque un “valor absoluto” buscará un valor variable. Éste valor será el texto que se ingrese en el TextBox1 del formulario.
Código vba modificado
Private Sub CommandButton1_Click() Dim strValor As String strValor = Me.TextBox1.Value 'Usamos la variable strValor que nuestro valor buscado sea el texto ' del TextBox1 del formulario. Cells.Find(What:=strValor, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate End Sub
Anexos
Descarga el ejemplo usado en este artículo: Obtener código vba de la grabadora de macros y reutilizarlo.xlsm.
No olvides Suscribirte a este Blog y a mi canal de Youtube para ser un experto en Excel.