Foros del Web » Soporte técnico » Ofimática »

VBA Excel - Array de objetos

Estas en el tema de VBA Excel - Array de objetos en el foro de Ofimática en Foros del Web. Hola a tod@s, Tengo un formulario en donde tengo varios textboxs, comboboxs y optionbuttons, tengo varias restricciones por ejemplo tengo un optionbutton que segun la ...
  #1 (permalink)  
Antiguo 03/05/2010, 11:01
 
Fecha de Ingreso: julio-2006
Mensajes: 114
Antigüedad: 17 años, 9 meses
Puntos: 0
De acuerdo VBA Excel - Array de objetos

Hola a tod@s,

Tengo un formulario en donde tengo varios textboxs, comboboxs y optionbuttons, tengo varias restricciones por ejemplo tengo un optionbutton que segun la opcion activa un combobox y segun eso se llena la información. Tengo un boton guardar y quiero que guarde solo los controles que estan llenos. Como haria para que me identifique los controles llenos y luego recorrer ese array de controles y guardarlos en una hoja excel ???.
  #2 (permalink)  
Antiguo 03/05/2010, 13:52
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Respuesta: VBA Excel - Array de objetos

En este ejemplo se recorren los controles diferentes de un userform y dependiendo del tipo se pintan de un determinado color

Dim objeto As Object

For Each objeto In Me.Controls

Select Case TypeName(objeto)
Case "Label"
objeto.BackColor = vbBlue
Case "TextBox"
objeto.BackColor = vbGreen
Case "CheckBox"
objeto.BackColor = vbYellow
Case "CommandButton"
objeto.BackColor = vbBlack
End Select

Next objeto


Abraham
  #3 (permalink)  
Antiguo 03/05/2010, 14:39
 
Fecha de Ingreso: julio-2006
Mensajes: 114
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: VBA Excel - Array de objetos

Hola Abrahamvj gracias por la ayuda. He modificado el codigo que enviaste y quisiera que el nombre me lo almacene en un array, como haria eso???
Gracias de antemano por tu ayuda.
Código vb:
Ver original
  1. Dim objeto As Object
  2.  
  3. For Each objeto In Me.Controls
  4. Select Case TypeName(objeto)
  5. Case "TextBox"
  6. objeto.BackColor = vbGreen
  7. if objeto.Value <> "" then
  8.  ALMACENAR EL NOMBRE DEL CONTROL EN UN ARRAY
  9. end if
  10. Case "ComboBox"
  11. objeto.BackColor = vbYellow
  12. if objeto.Value <> "" then
  13.  ALMACENAR EL NOMBRE DEL CONTROL EN UN ARRAY
  14. end if
  15. Case "OptionButton"
  16. objeto.BackColor = vbBlack
  17. if objeto.Value <> "" then
  18.  ALMACENAR EL NOMBRE DEL CONTROL EN UN ARRAY
  19. end if
  20. End Select
  21.  
  22. Next objeto
  #4 (permalink)  
Antiguo 04/05/2010, 13:58
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Respuesta: VBA Excel - Array de objetos

Pues usando la propiedad Name del "Objeto" consigues los nombres

Abraham
  #5 (permalink)  
Antiguo 04/05/2010, 15:40
 
Fecha de Ingreso: julio-2006
Mensajes: 114
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: VBA Excel - Array de objetos

claro objeto.name pero como se haria para almacenarlo a un array??
  #6 (permalink)  
Antiguo 04/05/2010, 15:58
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Respuesta: VBA Excel - Array de objetos

Pues declara tu variable del Array, y a traves de ReDim vas redeimendioando tu array y le vas agregando valores

Abraham

Etiquetas: excel, objetos, vba
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:11.