Curso: | Personalizar la UI de Excel con XML y VBA. |
Formato: |
Vídeo/Tutorial.
|
Archivos necesarios: | Personal v0.04.xlsm |
Anterior Vídeo/Tutorial: | Cargar un Cuadro... |
Acceso a los vídeos en Youtube: |
Volvemos con los ComboBox o Cuadros Combinados de la Cinta de Opciones de Excel, para en esta ocasión explicar cómo podemos actualizar las opciones que muestran en su interior. En concreto veremos como podemos cambiar las opciones que se muestran en un ComboBox mientras estamos trabajando en un documento, es decir en Tiempo de Ejecución. En la sesión anterior explique algo parecido, pero que se limitaba solo a la primera vez que se accedía al cuadro combinado. Es decir, cargábamos en tiempo de ejecución las opciones que iba a mostrar el cuadro combinado, la primera vez que se accedía a él. Lo que os explico en esta sesión, funcionará en todo momento. Es una sesión muy larga, pero creo que merece mucho la pena por lo que os voy a explicar sobre los Cuadros Combinados de la Ribbon y por todo el trabajo que vamos a realizar con objetos de Excel.
Para la explicación voy a seguir usando el ejemplo de los trabajadores, un ejemplo en el que se podían aplicar filtros para mostrar los trabajadores de una determinada población. En esta sesión añadiremos lo necesario para que en el cuadro combinado que usamos para filtrar, se añadan las nuevas poblaciones que se rellenen en la hoja que contiene los datos de los trabajadores. Ese va ser, el objetivo de la sesión, conseguir añadir opciones al cuadro combinado en tiempo de ejecución.
En realidad parte del trabajo ya lo tenemos realizado de la sesión anterior y el código que hay que escribir relacionado con la Ribbon es muy poco. Pero para dejar todo bien engranado habrá que realizar mucho trabajo con los objetos de Excel y entre otras cosas veremos como obtener Registros Únicos con Filtros Avanzados, como Eliminar y Copiar Hojas... En definitiva mucho trabajo que se hace habitualmente en Excel, pero desde el lado del programador, desde VBA.
Incluso para acabar, la sesión veremos como ordenar alfabéticamente las opciones del Cuadro Combinado, que como todo lo relacionado con la Ribbon veréis que tiene "truco". En realidad aunque queda mal decirlo, ni se pueden actualizar las opciones de un cuadro combinado de la Ribbon, ni se pueden ordenar... Pero como os digo, siempre hay "trucos" que nos permiten conseguir lo que queremos. Como os dije en la sesión anterior, cogeros una hora de vuestro tiempo y tomároslo con calma. Para realizar los pasos que veréis en el vídeo os podéis descargar el siguiente documento de Excel que voy a utilizar en el vídeo:
- Nombre: Actualizar las Opciones de un Cuadro Combinado de la Cinta de Opciones en Tiempo de Ejecución.
- Versión de Excel: ES/Español.
- Audio: Español.
- Subtítulos: Español.
- Duración Total Vídeos: 49m 19s.
Vídeo 1 de 2.
Vídeo 2 de 2.
Nada más por esta semana. Creo que de momento voy a parar un par de semanas con este tema para recuperar otros temas que tengo abandonados...
Esperamos continuar a mirar hacia adelante
ResponderEliminarSí, habrá continuación, no os preocupéis ;)
EliminarTengo un problema David cuando quiero activar el combobox, me saleel siguiente mensaje: Se ha producido el error 1004 en tiempo de ejecución. El rango de extracción tiene un nombre de campo inexistente o no permitido.
ResponderEliminarEntonces cuando depuro me envía a la siguiente linea de Codigo: ActiveSheet.Range("D:D").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Worksheets("Poblaciones").RAnge("A1"), Unique:=True
Que puede ser no encuentro la solución, podrias ayudarme. Gracias
Siento la tardanza, si no lo has solucionado mándame el archivo y lo miro.
EliminarSaludos.
A que direccion de correo o como te puedo mandar el archivo y de antemano gracias y Felicitaciones y agradecido por tus aportes
EliminarDavid buen día:
ResponderEliminarTengo el mismo error, cual fue la solución.....Gracias de antemano
Intenta esto que corrige el procedimiento del último vídeo que te desesperó y que quedó pendiente:
ResponderEliminarPrivate Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Target.Column = 4 Then
MiRibbon.InvalidateControl "comboPoblacion"
End If
End If
End Sub
Mi nombre es Miguel Luna Rodríguez espero que lo anterior te ayude.
ResponderEliminar