Todos los usuarios de Excel seguramente renombran las pestañas que vienen de modo predeterminado al abrir un libro (Hoja1, Hoja2, etc) a su gusto y necesidad. Así, encontramos nombres como 'Inicio', "Enero', 'Clientes', etc. Esos son los nombres de las 'pestañas'.
¿Pero cómo identificarlas correctamente desde algún código, macro o formulario?
Veremos a continuación las diferentes modos de llamarlas según la tarea que vayamos a realizar.
Modo N° 1: Por su nombre de pestaña, entre comillas. Algunos ejemplos:
Sheets("PROVEEDORES").Select
Sheets("PROVEEDORES").Unprotect
Sheets("PROVEEDORES").Range(“A:B”).Copy
Selection.Copy Destination:= Sheets("PROVEEDORES").[C5]
Hoja3.Select
Hoja3.Unprotect
Hoja3.Range("A:B").Copy
Selection.Copy Destination:=Hoja3.[C5]
NOTA: Este método requiere que recordemos a qué hoja corresponde el código Hoja3. Lo que es una dificultad al copiar códigos con esta expresión, ya que podemos no tener los mismos textos.
Modo N° 3: Al inicio de un módulo, se declara una variable del tipo 'hoja' para guardar el nombre. En el resto del módulo se hará mención a la variable en lugar del nombre o código de nombre.
Dim hop As Worksheet
'tipo de variable hoja
Set hop = Sheets("PROVEEDORES")
hop.Select
hop.Unprotect
hop.Range("A:B").Copy
Selection.Copy Destination:=hop.[C5]
Dim hojax As String 'tipo de variable texto
'nombre contenido de una celda de hoja LISTAS
hojax = Sheets("LISTAS").Range("B1")
'o también obtenido con un InputBox. Utilizar solo 1 de las 2 instrucciones
hojax = InputBox("Ingrese el nombre de la hoja a
utilizar.")
Sheets(hojax).Select
Sheets(hojax).Unprotect
Sheets(hojax).Range("A:B").Copy
Selection.Copy
Destination:=Sheets(hojax).[C5]
Modo N° 5: Llamar a la hoja haciendo referencia a su índice o ubicación entre las pestañas.
Sheets(1).Select ‘primera pestaña
Sheets(Sheets.Count).Select ‘última pestaña.
'Sheets.Count nos devolverá el total de hojas.
nombre = ActiveSheet.Name
codi = ActiveSheet.CodeName
indi = ActiveSheet.Index
Excelente. Muchas gracias por los aportes, me acaba de sacar de un aprieto.
ResponderBorrarQué bueno, esa es mi intención. Gracias por comentarlo. Sdos!
Borrar