[Excel - 2016] Actualizar un combobox tras insertar datos
DESTIN8TE
Mensajes publicados
40
Estado
Miembro
-
cs_Le Pivert Mensajes publicados 8437 Estado Colaborador -
cs_Le Pivert Mensajes publicados 8437 Estado Colaborador -
Hola,
Simplemente, tengo un formulario con 4 pestañas (Inserción, Modificación, ...).
Mi problema proviene de Modificación, donde tengo un comboBox que ya recupera las filas inscritas en mi tabla; si no hay ninguna, obviamente el comboBox no tiene datos (solo para información).
Si registro un nuevo dato con la pestaña Inserción y dejo el formulario abierto, en Modificación, el comboBox no recupera la última fila registrada.
Por lo tanto, me gustaría, sin tener que volver a abrir el formulario o incluso añadir un botón de actualizaciòn, que el comboBox se actualice automáticamente después de la inserción de la fila. El botón sería realmente como último recurso.
Aquí está el código para recuperar las filas:
PS: Sé que ahora mismo el comboBox "Pg2cmbBoxSelectRow" no se actualiza automáticamente ya que está en el Initialize.
Info: He probado poner este código en el código del botón de inserción en la pestaña Inserción, funciona pero me salen duplicados; si puedo evitar esos duplicados, normalmente estaría bien también.
Gracias y no dudes en pedir más detalles.
Simplemente, tengo un formulario con 4 pestañas (Inserción, Modificación, ...).
Mi problema proviene de Modificación, donde tengo un comboBox que ya recupera las filas inscritas en mi tabla; si no hay ninguna, obviamente el comboBox no tiene datos (solo para información).
Si registro un nuevo dato con la pestaña Inserción y dejo el formulario abierto, en Modificación, el comboBox no recupera la última fila registrada.
Por lo tanto, me gustaría, sin tener que volver a abrir el formulario o incluso añadir un botón de actualizaciòn, que el comboBox se actualice automáticamente después de la inserción de la fila. El botón sería realmente como último recurso.
Aquí está el código para recuperar las filas:
Private Sub UserForm_Initialize() .......... MultiPgPOSTIT.Value = 0 'Code para Pg2Mod Dim Línea As Integer Línea = 9 Do While Sheets("DATA").Cells(Ligne, 3).Value <> "" Me.Pg2cmbBoxSelectRow.AddItem Sheets("DATA").Cells(Ligne, 3).Value Ligne = Ligne + 1 Loop .......... PS: Sé que ahora mismo el comboBox "Pg2cmbBoxSelectRow" no se actualiza automáticamente ya que está en el Initialize.
Info: He probado poner este código en el código del botón de inserción en la pestaña Inserción, funciona pero me salen duplicados; si puedo evitar esos duplicados, normalmente estaría bien también.
Gracias y no dudes en pedir más detalles.
1 respuesta
-
Hola,
ver aquí: rellenar un Combobox sin duplicados
https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-F
--
@+ El Pivert-
-
Intenté esto:
Private Sub UserForm_Initialize() Dim I As Integer For I = 9 To Range("C65536").End(xlUp).Row Me.Pg2cmbBoxSelectRow = Range("C" & I) If Me.Pg2cmbBoxSelectRow.ListIndex = -1 Then Me.Pg2cmbBoxSelectRow.AddItem Sheets("DATA").Range("C" & I).Value Next I
Lo que resulta de lo que hice.
Pero todavía no tengo la nueva fila inscrita. -
Es normal que pongas este código al abrir el UserForm. Esto solo funciona una vez. Colócalo en un Botón como esto: Option Explicit Private Sub CommandButton1_Click() Dim I As Integer For I = 9 To Range("C65536").End(xlUp).Row Me.Pg2cmbBoxSelectRow = Range("C" & I) If Me.Pg2cmbBoxSelectRow.ListIndex = -1 Then Me.Pg2cmbBoxSelectRow.AddItem Sheets("DATA").Range("C" & I).Value End If Next I End Sub Il faut mettre la propiedad ShowModal del UserForm a False para poder trabajar sobre la hoja @+ Le Pivert
-