Jump to content

Actualizar combobox desde otro UserForm | Vba Excel


Recommended Posts

Hola Buenas tardes.

De antemano muchas gracias por su ayuda.

Tengo el siguiente problema en un proyecto de VBA y agradezco la ayuda que me puedan dar.

Tengo un formulario Userform1, dentro cual tengo los siguientes campos.

Fecha

Empleado

Categoria*

Servicio

Precio

Cantidad

Total

De entre estos campos el campo Categoria es un combobox, el cual ayudado de la propiedad del objeto rowsource alimento de la tabla 1 en en Excel

Categoria
Opcion 1
Opcion 2
Opcion 3

 

Tengo un formulario Userform2 para poder crear categorias, es decir alimentar la tabla 1.

 

Aqui viene mi problema, cuando abro el Userform1 y se me genera la necesidad de crear una nueva categoria, abro desde el mismo formulario el Userform2 para crearla, mediante un botón con el código Show UserForm2, pero al crear la categoria, se anexa en la tabla, luego cierro el userform2 y estando nuevamente en el Userform1, cuando desplego el combobox Categoria este no se actualiza y no me muestra la nueva opción que he acabado de crear.  Solo cerrando y volviendo a abrir el formulario se ve la nueva opción. Inclusive a veces se me bloquea excel y se cierra por completo.

 

Alguién tiene alguna pista, que me pueda ayudar a solucionarlo.

 

Muchas gracias.

 

Link to post
Share on other sites

Hola Buenas tardes @Antoni

 

Agradezco su ayuda. He subido el ejemplo de los formularios que estoy utilizando. Los he reducido solo para mostrar lo que necesito. Adicional a esto, me esta pasando que se me esta cerrando excel cuando trato de actualizar el combobox desde el otro formulario, no se si esto ya sea un problema de memoria del ordenador.

 

Mil gracias.

Ejemplo.xlsb

Link to post
Share on other sites

He convertido la tabla categoria a rango. (click derecho\Tabla\Convertir en rango)

He borrado la propiedad .Rowsource del combobox.

He modificado el procedimiento Userform_Initialize en el formulario FR_INGRESOS y el procedimiento GuardarCategorias_Click en el formulario categorias añadiendo este código en ambos:

With FR_INGRESOS.INGRESOS_CATEGORIA
   .List = Hoja1.Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row).Value
End With

Revisa el adjunto

Ejemplo.xlsb

Link to post
Share on other sites
Hace 1 hora, Antoni dijo:

He convertido la tabla categoria a rango. (click derecho\Tabla\Convertir en rango)

He borrado la propiedad .Rowsource del combobox.

He modificado el procedimiento Userform_Initialize en el formulario FR_INGRESOS y el procedimiento GuardarCategorias_Click en el formulario categorias añadiendo este código en ambos:


With FR_INGRESOS.INGRESOS_CATEGORIA
   .List = Hoja1.Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row).Value
End With

Revisa el adjunto

Ejemplo.xlsb 57.63 kB · 0 descargas

Mil gracias @Antoni.  Es usted un master. Solucionado. Le agradezco mucho su tiempo.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Saludos Estimados, tengo una función que al imprimir me guarda información y datos de algunas celdas de un formulario abierto, en un archivo (dato2.txt), este archivo contiene mucha información que se ha almacenado desde hace mucho tiempo, este archivo de texto es abierto de vez en cuando para verificar la información allí guardada, pero en algunas ocasiones se ha visto modificado por las personas que lo abren, por lo que se me ocurre generar uno nuevo con la misma información, es decir tener dos archivos idénticos pero que la información se cargue idéntica, no hago copia y paste del archivo ya creado porque aunque la información guardada esta guardada, necesito el otro de respaldo, o si me dan otra idea de como crear este doble respaldo estaré gustoso de aceptar sus opiniones. adjunto las instrucciones que me generan el respaldo permanente Private Sub Workbook_BeforePrint(Cancel As Boolean)Dim Archivotxt As StringSet fs = CreateObject("Scripting.FileSystemObject")Archivotxt = "C:\Varios Excel\dato2.txt" '<---Ruta y nombre del Txt  creadoIf Len(Dir(Archivotxt)) = 0 ThenSet a = fs.CreateTextFile(Archivotxt, True)a.CloseEnd IfSet a = fs.OpenTextFile(Archivotxt, 😎texto = Range("T17").Value & " ; " & ActiveWorkbook.Name & " ; " & ActiveSheet.Name & " ; " & Range("f15").Value & " ; " & Format(Range("F17").Value, "dd/mm/yyyy") & " ; " & Format(Range("j17").Value, "h:mm:ss AM/PM")a.WriteLine (texto) '<-----celda que se escribe en el Txt, se escribe en un renglon del txta.CloseSet fs = NothingSet Archivo = Nothing    gracias de antemano  
    • Expertos saludos a todo de esta comunidad informática, mi duda es que no logro ubicar si fuera un error o desbordamientos de código, lo que pasa es que me funciona muy bien la macro realizar los reportes por cada alumno, el detalle es que cuando en algunos reportes los criterio evaluación no coinciden cada criterio no lo esta tomando bien  para sacar el total, tengo mas de 30 alumnos por cada archivo, me tomado el afán de revisar cada reporte en algunos reportes del alumno lo cuadra muy bien la sumatoria pero en algunos reportes no los toma bien el total sale mas a en otros casos menos  no lo generando la sumatoria de acuerdo a los criterios eso es el único detalle que me sale en mi registro de correspondencia....Adjunto el archivo por favor. muchas gracias a la comunidad.      Rubricas 1 A 1 Primaria V2.xlsm
    • Checa el archivo   Saludos, Copia de PonerContraseñaBoton.xlsm
    • ¡Hola a todos! @Cristian 1985:  Debes tener en cuenta que en la función INDICE, el argumento 0 hace que la función devuelva TODOS los valores de la columna a analizar (puedes probar con una función en modo edición, y presionar F9 para que lo constates). @victorjavega:  Cristian si escribió bien mi nombre (eso hizo que me fijara en el tema).  Tu llamaste a un "tocayo"... 😂 Para la propuesta, no necesitas ningún tipo de macros.  Simplemente un control de formulario (control número), vinculado con la celda donde está el mes. Mejoré la fórmula que tenías en la selección del mes, además de la fórmula original, donde combino INDICE - COINCIDIR - INDICE.  Revisa el adjunto.  ¡Bendiciones! Calendario_aulas.xlsx
    • Gracias por millones Toni, muy amable.
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy