none
Cómo crear lista desplegable en una celda de Excel con los resultados de una consulta sql? RRS feed

  • Pregunta

  • Hola, lo que hago es crear una consulta sql para obtener los valores de una columna de una tabla. Esos valores ahora quiero almacenarlos en una sola celda de Excel, creando así una lista desplegable sobre la propia celda.

    Yo lo que hago es que almaceno los elementos del recordset en un objeto collection de la siguiente manera. 

    If Not rsData.EOF Then
        For i = 0 To rsData.Fields.Count - 1
            lista.Add (rsData.Fields(i).Value)
        Next

    Por otra parte he creado mi variable cell de tipo Range a la que le he asignado el Rango "F14"

    Cómo puedo ahora insertar los elementos de la lista, creando así una lista desplegable en dicha celda??

    Gracias de antemano.

    martes, 15 de julio de 2014 11:00

Todas las respuestas

  • Hola!

    Me temo que vas un poco descaminado.

    SI metes todos los datos en una celda no puedes crear una lista despegable, supongo que puedes lograr algo similar a lo que explicas escribiendo los datos en un rango de celdas y utilizar este como base para una validación de datos en la celda que desees.


    Saludos a todos desde Huelva Emilio http://www.mvp-access.es/emilio/

    martes, 15 de julio de 2014 16:37
  • Gracias pero por qué no se puede hacer eso?? Si se puede hacer a partir de un rango de celdas y crear una lista con esos valores en una sola celda, por qué no se puede hacer lo mismo desde una serie de datos que ya tenga yo en un array?.

    No me parece que sea algo tan raro.

    miércoles, 16 de julio de 2014 7:08
  • Pues me temo que esa pregunta habrás de hacérsela a Microsoft y no a mi,...

    Saludos a todos desde Huelva Emilio http://www.mvp-access.es/emilio/

    miércoles, 16 de julio de 2014 11:09
  • Hola,

    No es que sea una lista desplegable propiamente dicha, pero puedes usar la propiedad Validation del objeto Range. Este código valdría:

    cell.Validation.Delete();
    cell.Validation.Add(XlDVType.xlValidateList, System.Type.Missing, XlFormatConditionOperator.xlBetween, valores, System.Type.Missing);
    cell.Validation.IgnoreBlank = true;
    cell.Validation.ShowInput = true;
    cell.Validation.InCellDropdown = true;

    "valores" sería un string donde tendrías que meter los elementos de la lista separados por ";"

    Si no ,igual puedes incrustar un combobox en la celda, a mi lo primero me vale para lo que tengo.

    Saludos.

    miércoles, 13 de agosto de 2014 10:06