Ya hemos visto en el VIDEO N° 9 cómo utilizar macros o procesos desde diferentes ámbitos o llamadas.
Ahora veremos cómo actualizar un control desplegable que tenemos en nuestro Userform abierto cuando la lista se actualiza desde otro formulario. Sin necesidad de cerrarlo y volverlo a abrir.
En el VIDEO Nº 39 dejo 3 ejemplos:
Ejemplo 1- solicitando el nuevo elemento de la lista desde un InputBox.Nuestro desplegable tendrá asignado el rango a mostrar, desde la propiedad RowSource (no desde el código).
Una vez ingresado el texto en el InputBox se procede a volcarlo a la lista en modo mayúscula.
Private Sub
CommandButton1_Click() 'nueva
caja
'solicita nuevo nombre (en mayúsculas)
caja = UCase(InputBox("Ingresar
nuevo Tipo."))
'si el InputBox queda vacío
If caja = "" Then
ComboBox2.SetFocus
Else
'agrega a la hoja Listas 'verificar q no se duplique (*)
With
Sheets("Listas")
.Range("E" &
.Range("E" & Rows.Count).End(xlUp).Row + 1) = caja
End With
'actualizar el control 'ordenar previamente (**)
ComboBox2.RowSource = "=cajas"
ComboBox2.Text = caja
'opcional: pasarle el foco a algún otro control
ComboBox4.SetFocus
End If
End Sub
Private Sub UserForm_Initialize()
x =
Sheets("Listas").Range("A" & Rows.Count).End(xlUp).Row
If x > 2 Then
For i = 3 To x
ComboBox1.AddItem Sheets("Listas").Range("A"
& i)
Next i
End If
End Sub
Private Sub
CommandButton3_Click() 'nueva marca
'llamar al segundo formulario
UF_ProdMarcas.Show
'al regresar ya se habrá dejado en el
control Combobox el texto ingresado
If ComboBox1 <> ""
Then
'guardarlo provisoriamente en una variable
dato = ComboBox1.Text
'ordenar la lista
Call ordenaLISTAS
'vaciar el combo para actualizarlo nuevamente con la lista actualizada
ComboBox1.Clear
For i = 3 To
Sheets("Listas").Range("A" & Rows.Count).End(xlUp).Row
ComboBox1.AddItem
Sheets("Listas").Range("A" & i)
Next i
'volver a mostrar el dato guardado
ComboBox1 = dato
End If
End Sub
Private Sub
CommandButton2_Click()
UF_Prod.ComboBox1 = TextBox1 'lo muestra en el control
Unload UF_ProdMarcas
End Sub
Private
Sub UserForm_Initialize()
filx
= Sheets("Listas").Range("C1").CurrentRegion.Rows.Count
ComboBox2.RowSource
= "=Listas!C3:C" & filx
End Sub
Private Sub CommandButton4_Click()
'se selecciona la primer opción del
2do formulario, dándole el foco al control de texto
UF_VerificaListas.OptionButton1.Value
= True
UF_VerificaListas.TextBox1.SetFocus
'se llama al 2do formulario
UF_VerificaListas.Show
'al regresar se actualiza el control
combobox con el nuevo rango
ComboBox2.RowSource
= "=Listas!C3:C" &
Sheets("Listas").Range("C1").CurrentRegion.Rows.Count
No hay comentarios.:
Publicar un comentario