Anterior
Trabajando con Colecciones
Una colección es un conjunto de objetos del mismo tipo: hojas, celdas, controles o Shapes, imágenes.
Para trabajar con una colección se programa un bucle: es decir repetir la misma instrucción para cada elemento de la colección.
A continuación algunos ejemplos:
Ejemplo1: introducir un nombre para cada hoja del libro
activo:
Dim MiNombre as String
Dim hoja as Worksheet
For Each hoja in Worksheets
MiNombre = InputBox("Ingrese nombre de hoja: ")
next hoja
Ejemplo2: introducir valores para cada celda de un rango
Dim celdita as Range
For Each celdita in ActiveSheet.Range("A1:B10")
celdita.Value = InputBox("Ingrese valor: ")
next celdita
Ejemplo3: introducir los mismos valores en celdas de todas las
hojas
Dim hoja as Sheets
For Each hoja in Sheets
hoja.Range("E3").Value = Date
hoja.Range("F3").Value = Time
next hoja
Trabajando con Objetos
A continuación algunos ejemplos de cómo llamar a objetos insertados en hoja, como ser Cuadros de texto, Listas o
Cuadros combinados y también un Userform.
1- Llamando a un Userform, desde un botón:
En una hoja de Excel, los botones que lanzan una acción, pueden ser colocados con la barra de Formularios o Cuadro de Controles.
Botón de formulario: se asigna una macro, como la del ejemplo, que previamente se escribió en un
módulo en el Editor de Visual Basic. Ejemplo:
Sub mostrando ()
UserForm1.Show 'nombre del Userform que se desea mostrar
End Sub
- Botón del Cuadro de controles: una vez dibujado en la hoja, clic derecho, opción Ver código y escribir la rutina (ésta se habilita en la
hoja donde aparecerá el control). Ejemplo:
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
2- Asignando valores a los Cuadros de texto:
Ejemplos de cómo registrar datos en los textbox dibujados en hoja con la barra 'Cuadro de controles':
TextBox1.Value = "CANCELADO"
TextBox2 = Sheets("Hoja3").Range("A5").Value
TextBox2 = Range("C1").Value + Range("C2").Value
3- Volcar datos de un control Textbox y Combobox a la hoja:
Estos controles han sido dibujados con la barra 'Cuadro de controles'
'pasar datos de un control Textbox
Cells(fila, col).Value = TextBox1.Value
'pasar datos de la selección de un combobox
Sheets("Hoja1").Cells(fila, col).Offset(1, 0).Value = Combobox1.Value
4- Asignar rango a un control Listbox y Combobox:
Estos controles han sido dibujados con la barra 'Formularios'
'asignar rango de entrada al control Lista
ActiveSheet.Shapes("List Box 1").Select
With Selection
.ListFillRange = "$F$1:$F$4"
End With
'asignar rango de entrada al control Combobox
ActiveSheet.Shapes("Drop Down 1").Select
With Selection
.ListFillRange = "$K$1:$K$7"
End With
5- Cargar datos a un control ListBox de un UserForm:
Private Sub UserForm_Activate()
Dim item As Variant
For Each item In Range("F1:F6")
ListBox1.AddItem item.Value
Next item
End Sub
Anterior