Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

VBA - Objeto Worksheets

| 6 comentarios

VBA - Objeto Worksheets

La colección Worksheets es el conjunto de todos los objetos Worksheet de un libro especificado o activo. Las colecciones son objetos por sí mismos.

El objeto WorkSheet  representa una hoja de cálculo. El objeto Worksheet también es un miembro de la colección Sheets. La colección Sheets contiene todas las hojas del libro (hojas de gráficos y hojas de cálculo).

En la jerarquía de objetos de Excel los objetos pueden actuar como recipientes de otros objetos. Un objeto Workbook puede contener otros objetos como Worksheet y Chart. Un objeto Worksheet puede contener objetos como Range, Pivot Table entre otros. Así, se puede hacer referencia a la  Hoja1 del Libro1 del siguiente modo:

Aplication.Worbooks(“Libro1.xlsx”).Worksheets(“Hoja1”)   

Se usa Worksheets(índice), donde índice es el nombre o número índice de la hoja de cálculo, para obtener un solo objeto Worksheet.  El número de índice de la hoja de cálculo representa la posición de la hoja en la barra de fichas del libro. Worksheets(1) es la primera hoja (en el extremo izquierdo) del libro y Worksheets(Worksheets.Count) es la última.

Propiedades del objeto Worksheets

Las principales propiedades y su descripción se encuentran en la Ayuda Excel y son: Aplication, Count, HpageBreaks, Item, Parent, Visible y VpageBreaks

Detalle de uso de:

Worksheets.Visible (propiedad)

Devuelve o establece un valor de tipo Variant que determina si el objeto es visible.

Sintaxis

expresión.Visible

expresión:   Variable que representa un objeto Worksheet.

Ejemplo: Con el  siguiente código se oculta la hoja de cálculo 1 de un libro activo:

   Worksheets(1).Visible=False

Métodos del objeto Worksheets

Las principales métodos y su descripción se encuentran en la Ayuda Excel y son: Add, Copy, Delete, FillAcrossSheets, Move, PrintOut, PrintPreview y Select.

Detalle de uso de :

Worksheets.Add (método)

Crea una hoja de cálculo, un gráfico o una hoja de macros. La nueva hoja de cálculo se convierte en la hoja activa.

Sintaxis

expresión.Add(Before, After, Count, Type)

expresión :  Variable que representa un objeto Worksheets.

Los parámetros son opcionales (Before/After especifica las hoja antes/después de la cual se agregará la hoja, Count por default es 1 y Type por default es una hoja de cálculo)

Ejemplo: Se creará una nueva hoja en el libro activo y que será colocada a la derecha de todas las demás hojas, mediante la siguiente sintaxis:

Sub Agregar()
Dim Hoja As Worksheet
Set Hoja = Worksheets.Add(After:=Sheets(Worksheets.Count))
End Sub

Esta macro crea una nueva hoja y la coloca después de la última hoja, a la cual hacemos mención con "Sheets(Worksheets.Count)".

 

Elaborado por: Fernando Ventura Fernández

6 comentarios

  1. hice un formulario sencillo que solo te envía a diferentes hojas con botones, cada botón es para una hoja diferente, pero cuando presionas un botón cualquiera y te manda a cierta hoja ya estando en dicha hoja no te deja escribir ni copiar ni nada todo lo que escribas o copies lo manda a la hoja principal. porque?????

    • Pruebe cerrando el formulario que dejó de utilizar, pruebe con usando:
      unload userform1
      Colocando el nombre correspondiente al formulario que cierre.

  2. esto es correcto Sub LIMPIAR()
    Application.ScreenUpdating = False

    Dim wb As Workbook: Set wb = ThisWorkbook
    Dim Res As Worksheet: Set Res = wb.Sheets("RESUMEN")

    wb.Sheets(Res).Range(Range("A4"), Range("A4").End(xlToRight)).Copy
    wb.sheets(Res).Range("A47511").PasteSpecial Paste:=xlPasteValues

  3. Buenos días!
    Felicidades por tu página, muy útil!
    Estoy programando en Visual Basic -aprendiendo- dentro de un libro Excel. Este libro tiene varias hojas.
    Una de ellas se llama Nombres que tiene 3 columnas.
    Quiero hacer una función que me busque, en la columna 1 de la Hoja Nombres, un valor que tengo en una variable. Si lo encuentra en la columna 1, que me devuelva lo que hay en la columna 3 para guardarlo una variable.
    ¿Me podrías ayudar?
    Muchas gracias
    Max

  4. Ya lo he resuelto. Muchas gracias por tu ayuda, me vino genial.

  5. Set hoja = ActiveWorkbook.Sheet.Add como arreglar

    ayuda por favor

Deja una respuesta

Los campos requeridos estan marcados con *.