Macro para recorrer hojas en un libro de Excel

25 mar 2020

Macro para recorrer hojas en un libro de Excel


En la actualidad debemos ser mas eficientes al momento de trabajar en un libro de excel, y una de las mejores formas de hacerlo eficientemente es trabajar con macros.
Las macros nos pueden facilitar mucho las cosas al momento de trabajar.
El día de hoy les explicaré como crear una macro para recorrer todas las hojas de un libro.

Para poder crear esta macro, en nuestro libro necesitamos seguir los siguientes pasos:
1. Abrir el editor Visual Basic para Aplicaciones (VBA).

2. en la cinta de opciones en el menú Insertar… módulo

3. dentro del módulo:
     A) creamos el nombre de nuestra macro:

        Sub Recorrer_Hojas() 


    B) Declaramos los tipos de variables:

        Dim Numero_Hojas As Integer         'integer por que es numerico
        Dim i As Integer         'integer por que es númerico

   
    C) Contamos las hojas que existen con la instrucción “Worksheets.Count” y lo guadarmos en una variable que llamaremos “Numero_Hojas”:

        Numero_Hojas = Worksheets.Count 



    D) Creamos un ciclo para recorrer las hojas.

Comenzamos con un For y la variable i y las veces que se va a ejecutar el ciclo lo establecemos con  Numero_Hojas, que es el número de hojas que tenemos
   
        For i = 1 To Numero_Hojas           

Dentro del ciclo vamos a colocar la instrucción que nos va a enviar un mensaje con el nombre de la hoja con las intrucciones “MsgBox” para enviar el mensaje y “Worksheets(I).Name” para obtener el nombre de la hoja.

        MsgBox Worksheets(I).Name        
      

Cerramos el ciclo con un Next
      Next i

    E)  Cerramos nuestra macro con un End Sub


4. Al final nuestra macro va a quedar de la siguiente manera:


Sub Recorrer_Hojas()        
    Dim Numero_Hojas As Integer        
    Dim I As Integer        
        'Establecer Numero_Hojas igual al número de hojas de trabajo en el libro activo.        
Numero_Hojas = Worksheets.Count        
    ' Comenzado el ciclo        
For I = 1 To Numero_Hojas           
    ' Inserta tu código
     ' La siguiente línea muestra cómo hacer referencia a una hoja dentro de
     ' el bucle mostrando el nombre de la hoja de trabajo en un cuadro de diálogo.        
MsgBox Worksheets(I).Name        
Next I     
End Sub

6 comentarios :

  1. No recorre las hojas solo me envia un mensaje con el nombre de cada una de las hojas pero siempre se queda en la primera hoja

    ResponderBorrar
    Respuestas
    1. Hola Angel, por favor me puedes mostrar el código que estás usando

      Borrar
    2. Hola. Si recorre las hojas, y muestra un mensaje con el nombre de cada hoja al recorrerlas, es lo que hace la macro, si de deseas algo más debes programar que quieres que haga en y/o con cada hoja. Si quieres que te seleccione cada hoja debes darle. Sheets(Worksheets(I).Name).Select dentro del for para que la seleccione además de mostrar su nombre.

      Borrar
  2. Hola. Según veo hacemos cosas similares, tal vez podemos aunar esfuerzos si te interesa, para maximizar resultados, me avisas. +57 315 4383999 WhatsApp. Este es uno de mis blogs https://compulgpost.blogspot.com/
    Tu formulario de contacto no funciona. O si lo hace no pareciera hacerlo.

    ResponderBorrar
  3. Si tiene razon Angel, no hay numero de lo que contO

    ResponderBorrar
  4. si recorre las hojas, por ejemplo, para que lo notes, puedes reemplazar usar este código
    MsgBox Worksheets(I).Name

    y puedes usar este código

    Worksheets(I).Select
    Range("B1").select

    de esta manera lo vas a notar

    ResponderBorrar