Poner valor variable en Combo al abrir hoja Excel

Tengo un combo llamado ListPeriodoSOLRED y quiero que al abrir el libro Excel el combo coja el valor por defecto de una celda de la hoja. No es siempre el mismo por eso no lo pongo en Propiedades del control, porque al cerrar el libro puede haber cambiado de valor, pero al volver a abrir el libro quisiera que por defecto cogiera el valor que hay en ese momento en esa celda.

Supongo que la macro debo escribirla en el Open de Workbook.

He probado con pero me da error.

ListPeriodoSOLRED.Value = Sheets("PanelPrincipal").Range("C2")

2 respuestas

Respuesta
1

Supongo que es un combo de Control ActiveX. Si es así. Tienes que indicar en qué hoja está el combo y poner el parámetro "Object.Value" :

Sheets("datos").ListPeriodoSOLRED.Object.Value = Sheets("PanelPrincipal").Range("C2")

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Dante, no consigo que funcione.

Mira, en la hoja "PanelPrincipal", rango "C2" tengo esto, "200710"

Al abrir el libro quiero que este dato quede en este combo que tengo en la hoja "PanelSOLRED" por defecto. Este combo se llama "ListPeriodoSOLRED"

Hasta ahora al abrir el libro, en el evento Open tengo este código:

With Sheets("PanelSOLRED")
    .ListPeriodoSOLRED.Clear
    .ListPeriodoSOLRED.Value = "" 'aquí es donde quiero que aparezca por defecto 
    .ListFacturasSOLRED.Clear
    .ListFacturasSOLRED.Value = ""
    .ListBoxDesgloseSOLRED.Clear
End With

No tengo manera que lo haga.

Gracias.

El error que me da es "Subíndice fuera de intervalo".

Por si sirve de algo!

Gracias.

Moisés.

Pero no me comentaste si es un combo de Control ActiveX

Cambiaste el nombre de la hoja:

Sheets("PanelPrincipal").ListPeriodoSOLRED.Object.Value = Sheets("PanelPrincipal").Range("C2")

.

'S aludos. Dante Amor. Recuerda valorar la respuesta.

Hola Dante.

Si es un control Activex. He copiado el código y no funciona.

El error que me sale es este.

Gracias.

Moisés.

Me parece que no copiaste el código.

Envíame tu archivo para revisar cómo tienes el combo, en qué hoja lo tienes, cómo se llama la hoja y el código

También dime qué versión de excel tienes.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Moises Llaveria Cuelliga

Hola Dante.

te lo acabo de enviar.

Gracias.

Moisés.

Dante, la versión de Excel creo que es 2013.

Perdona, olvidé decirlo en el anterior post.

Moisés.

El problema es porque tienes la propiedad del combo Style como "2-fmstyledropdowlist", y con este argumento solamente te permite poner valores en el combo que se encuentran agregados en el combo

Ya puse la propiedad Stye como "0-fmStyleDrowDowncombo", pero no sé por qué razón en algunas ocasiones la regresa a "2-fmstyledropdowlist".

Te sugiero que agregues el dato y después lo selecciones, de esta forma:

    With Sheets("PanelSOLRED")
        .ListPeriodoSOLRED.Clear
        .ListPeriodoSOLRED.Value = ""
        .ListFacturasSOLRED.Clear
        .ListFacturasSOLRED.Value = ""
        .ListBoxDesgloseSOLRED.Clear
        .ListPeriodoSOLRED.AddItem Sheets("PanelPrincipal").Range("C2")
        .ListPeriodoSOLRED.Value = Sheets("PanelPrincipal").Range("C2")
    End With

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Respuesta
1

¿Probaste así?:

ListPeriodoSOLRED.Value = Sheets("PanelPrincipal").Cells(2,3).value 

Intenta así porque al usar range es para seleccionar nada más

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas