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

VBA combobox

Estas en el tema de VBA combobox en el foro de Ofimática en Foros del Web. Que tal, soy nuevo en esto del VBA, estaba siguiendo este tutorial para empezar, pero lo que yo ocupo hacer no lo encontre por ningun ...
  #1 (permalink)  
Antiguo 21/02/2012, 11:19
Avatar de lukas4  
Fecha de Ingreso: octubre-2008
Ubicación: frente al pc
Mensajes: 496
Antigüedad: 15 años, 6 meses
Puntos: 12
Pregunta VBA combobox

Que tal, soy nuevo en esto del VBA, estaba siguiendo este tutorial para empezar, pero lo que yo ocupo hacer no lo encontre por ningun lado -o mas bien no supe buscar -

mi duda es la siguiente, como hago para inicializar varios comboboxes con los valores Yes y No, el nombre de los CBBs son Answer1 hasta Answer9.

trate de hacerlo con un for de la siguiente manera:

Código vb:
Ver original
  1. Private Sub UserForm_Initialize()
  2.  
  3. Dim combo
  4. combo = "Answer"
  5. For i = 1 To 9
  6.    
  7.     combo = combo & i
  8.     combo.AddItem "Yes"
  9.     combo.AddItem "No"
  10.     'combo = "Answer"
  11.  
  12. Next
  13.  
  14. End Sub

pero no me funciono, alguna idea de como hacer funcionar eso de la inicializada?
__________________
http://situcomo.blogspot.com
Karma is a Bitch... they said
  #2 (permalink)  
Antiguo 23/02/2012, 14:49
 
Fecha de Ingreso: noviembre-2011
Ubicación: Huancayo
Mensajes: 70
Antigüedad: 12 años, 5 meses
Puntos: 6
Información VBA combobox

Hola, lukas4

espero que te ayude:

Código PHP:

Private Sub UserForm_Initialize()
Dim controlesForm As Control
  
For Each controlesForm In Controls
    
If (TypeOf controlesForm Is ComboBoxThen
        controlesForm
.AddItem ("a")
        
controlesForm.AddItem ("b")
    
End If
  
Next
End Sub 


Saludos
__________________
________________
CompuInicio.com
Iniciando Bien . . .
  #3 (permalink)  
Antiguo 23/02/2012, 16:25
Avatar de lukas4  
Fecha de Ingreso: octubre-2008
Ubicación: frente al pc
Mensajes: 496
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: VBA combobox

que tal systemtak, encontre una solución a eso el otro día, pero también probé con el codigo que me pusiste pero me marca un error del tipo mismatch y si le doy debug solo me marca el nombre de la forma en el boton de comando de excel =S
__________________
http://situcomo.blogspot.com
Karma is a Bitch... they said
  #4 (permalink)  
Antiguo 23/02/2012, 16:39
 
Fecha de Ingreso: noviembre-2011
Ubicación: Huancayo
Mensajes: 70
Antigüedad: 12 años, 5 meses
Puntos: 6
Información Respuesta: VBA combobox

Hola, vamos paso a paso.

1.- Creando un Formulario con todos los controles ComboBox cuyo nombre son ANSWER*.
2.- Creando: una macro que me permite mostrar el FORM.
Código PHP:
Sub mostrar()
UserForm1.Show
End Sub 
3.- Evento CLICK del Boton dentro del Form.
Código PHP:

Private Sub CommandButton1_Click()
Dim controlesForm As Control
  
For Each controlesForm In Controls
    
If (TypeOf controlesForm Is ComboBoxThen
        controlesForm
.AddItem ("Yes")
        
controlesForm.AddItem ("No")
    
End If
  
Next
End Sub 
4.- Descarga Ejemplo

http://dl.dropbox.com/u/58429097/ejemplo.xlsm




Saludos
__________________
________________
CompuInicio.com
Iniciando Bien . . .
  #5 (permalink)  
Antiguo 24/02/2012, 08:26
Avatar de lukas4  
Fecha de Ingreso: octubre-2008
Ubicación: frente al pc
Mensajes: 496
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: VBA combobox

andale, algo asi ocupo, pero lo que ocupo es que me cargue los combos desde que le doy click al boton en el worksheet de excel, mas no desde el form en si. La solución que encontre es la siguiente:

Código vb:
Ver original
  1. Public Sub LoadCombos(pcb As ComboBox)
  2. With pcb
  3.     .Clear
  4.     .AddItem "Select..."
  5.     .AddItem "Yes"
  6.     .AddItem "No"
  7.     .Text = .List(0)
  8. End With
  9. End Sub

y mando llamar esa función en el initialize:

Código vb:
Ver original
  1. Private Sub UserForm_Initialize()
  2.  
  3. LoadCombos answer1
  4. answer1.Style = fmStyleDropDownList
  5. LoadCombos answer2
  6. answer2.Style = fmStyleDropDownList
  7. LoadCombos answer3
  8. answer3.Style = fmStyleDropDownList
  9. LoadCombos answer4
  10. answer4.Style = fmStyleDropDownList
  11. LoadCombos answer5
  12. answer5.Style = fmStyleDropDownList
  13. LoadCombos answer6
  14. answer6.Style = fmStyleDropDownList
  15. LoadCombos answer7
  16. answer7.Style = fmStyleDropDownList
  17. LoadCombos answer8
  18. answer8.Style = fmStyleDropDownList
  19. answer9.Style = fmStyleDropDownList
  20.  
  21. End Sub
__________________
http://situcomo.blogspot.com
Karma is a Bitch... they said
  #6 (permalink)  
Antiguo 24/02/2012, 08:44
Avatar de lukas4  
Fecha de Ingreso: octubre-2008
Ubicación: frente al pc
Mensajes: 496
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: VBA combobox

de hecho ahora mi problema es en esta función:

Código vb:
Ver original
  1. Private Sub calcButton_Click()
  2.  
  3. Dim i
  4. i = 0
  5.  
  6. If answer1.Value = "No" Then
  7.     i = i - 6
  8. ElseIf answer1.Value = "Select..." Then
  9.     MsgBox "Please select an answer for question 1"
  10.     Exit Sub
  11. End If
  12. If answer2.Value = "No" Then
  13.     i = i - 6
  14. ElseIf answer2.Value = "Select..." Then
  15.     MsgBox "Please select an answer for question 2"
  16.     Exit Sub
  17. End If
  18. If answer3.Value = "No" Then
  19.     i = i - 6
  20. ElseIf answer3.Value = "Select..." Then
  21.     MsgBox "Please select an answer for question 3"
  22.     Exit Sub
  23. End If
  24. If answer4.Value = "Yes" Then
  25.     i = i + 1
  26. ElseIf answer4.Value = "No" Then
  27.     i = i - 1
  28. Else
  29.     MsgBox "Please select an answer for question 4"
  30.     Exit Sub
  31. End If
  32. If answer5.Value = "Yes" Then
  33.     i = i + 1
  34. ElseIf answer5.Value = "No" Then
  35.     i = i - 1
  36. Else
  37.     MsgBox "Please select an answer for question 5"
  38.     Exit Sub
  39. End If
  40. If answer6.Value = "Yes" Then
  41.     i = i + 1
  42. ElseIf answer6.Value = "No" Then
  43.     i = i - 1
  44. Else
  45.     MsgBox "Please select an answer for question 6"
  46.     Exit Sub
  47. End If
  48. If answer7.Value = "Yes" Then
  49.     i = i + 1
  50. ElseIf answer7.Value = "No" Then
  51.     i = i - 1
  52. Else
  53.     MsgBox "Please select an answer for question 7"
  54.     Exit Sub
  55. End If
  56. If answer8.Value = "Yes" Then
  57.     i = i + 1
  58. ElseIf answer7.Value = "No" Then
  59.     i = i - 1
  60. Else
  61.     MsgBox "Please select an answer for question 8"
  62.     Exit Sub
  63. End If
  64.  
  65. If i < 0 Then
  66.     answer9.Value = "No" 'aqui me tira error
  67. Else
  68.     answer9.Value = "Yes"
  69. End If
  70.  
  71. End Sub
lo que quiero hacer es asignarle un valor al combo answer9, como lo dice el codigo si i<0 que se seleccione No, de lo contrario Yes. Espero me puedas ayudar con esto. Gracias

Nevermind, ya lo solucione, utilice:
Código vb:
Ver original
  1. answer9.SelText = "No"
en lugar de lo que tenia ^^
__________________
http://situcomo.blogspot.com
Karma is a Bitch... they said

Última edición por lukas4; 24/02/2012 a las 08:52

Etiquetas: applications, basic, vba, visual
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 16:44.