Llenado de ComboBox

Dentro del formulario en la Hoja1 está el ComboBox, los datos en la hoja 2, en esta rutina ¿como seria para que no saltara a la hoja donde están los datos(Hoja2)
Private Sub UserForm_Initialize()
[a2].Select
Do While ActiveCell <> ""
ComboBox2.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
tengo otra rutina a otro ComboBox que le aplique
Application.ScreenUpdating = False  'Para que no salte de Hoja cuando se abre el formulario si, los
'datos a llenar el ComboBox son de otra Hoja
Sheets("hoja1").Select
Range("a2").Select
Do While ActiveCell <> Empty
ComboBox1.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Quisiera saber como aplicar el mismo método a la primera rutina(ComboBox2)

1 respuesta

Respuesta
1
Con el código que le escribo a continuación puede tomar los datos de la hoja2 sin aparentemente cambiar de hoja. No uso Screenupdating, pero cambia de hoja al principio de la rutina (a la hoja2) y vuelve a cambiar a la hoja1 al final de la rutina desde la hoja2, tras llenar el combobox.
ComboBox2. Clear
Sheets("hoja2").Select
[hoja2!a2].Select
Do While ActiveCell <> ""
ComboBox2.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
Sheets("hoja1").Select
Esta rutina además le vacía el combobox, si tenía algún elemento en él. Para aplicar la rutina tiene que ir al editor de visual basic, visualizar el form y cambiarlo en el método correspondiente: Initialize. No sé si esto es lo que deseaba.
Perdona mi insistencia, tal vez la inexperiencia mía me lleva a exagerar
En este codigo, ¿no puede aplicarse esta Application.ScreenUpdating = False  o otra linea con el mismo fin?
Private Sub UserForm_Initialize()
[a2].Select
Do While ActiveCell <> ""
ComboBox2.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
Solo eso quería saber, Gracias y perdón por la insistencia
Sí puede usarlo, por supuesto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas