BannerAnuncios

jueves, 29 de enero de 2015

Actualizar las Opciones de un Cuadro Combinado de la Cinta de Opciones en Tiempo de Ejecución.

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:

Como siempre aquí tenéis los enlaces para ver los dos vídeos desde el Blog, espero que os gusten:

  • 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...

8 comentarios:

  1. Esperamos continuar a mirar hacia adelante

    ResponderEliminar
  2. Tengo 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.
    Entonces 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

    ResponderEliminar
    Respuestas
    1. Siento la tardanza, si no lo has solucionado mándame el archivo y lo miro.

      Saludos.

      Eliminar
    2. A que direccion de correo o como te puedo mandar el archivo y de antemano gracias y Felicitaciones y agradecido por tus aportes

      Eliminar
  3. David buen día:

    Tengo el mismo error, cual fue la solución.....Gracias de antemano

    ResponderEliminar
  4. Intenta esto que corrige el procedimiento del último vídeo que te desesperó y que quedó pendiente:

    Private 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

    ResponderEliminar
  5. Mi nombre es Miguel Luna Rodríguez espero que lo anterior te ayude.

    ResponderEliminar

Nota: solo los miembros de este blog pueden publicar comentarios.