Como grabar con nombre de celda desplegable

Hola, tengo esta macro.
Sub GUARDAR()
Dim NombreArch As String
Dim fecha As String
    fecha = Range("E3")
    fecha = Replace(fecha, "/", "-")
    fecha = Replace(fecha, ":", "-")
    NombreArch = Range("E5") & Range("  lista desplegable  ") & fecha
    carpeta = "c:\clientes\"
    ActiveWorkbook.SaveAs carpeta & NombreArch
    Sheets("hoja1").PrintOut
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    Application.Quit
End Sub
El rango de (" lista desplegable ") no se lo que debo poner para que cuando se grabe ponga también el nombre que pone en la lista desplegable.
Gracias.
Saludos.

1 respuesta

Respuesta
1
Cuando agregas un objeto al proyecto, en tu caso una lista desplegable, excel le asigna un nombre, para que puedas operar con la lista.
Tendrías que poner:
Nombredelistadesplegable. Value, no tienes q poner nada de range, porque la lista desplegable no es ningun rango
NombreArch = Range("E5") & nombredelistadesplegable.value & fecha
Hola,
Cuando pongo en la linea:
NombreArch = Range("E5") & nombredelistadesplegable.value & fechaNombreArch = Range("E5") & lista desplegable 96.value & fecha
me da el error de compilacion:
Se esperaba: fin de la instrucción
Si pongo:
NombreArch = Range("E5") & nombredelistadesplegable.value & fechaNombreArch = Range("E5") & listadesplegable96.value & fecha
La linea se pone en amarillo
Si pongo:
NombreArch = Range("E5") & nombredelistadesplegable.value & fechaNombreArch = Range("E5") & listadesplegable96 & fecha
No hace caso al nombre de la lista
Alguna apreciación de la solución.
Gracias.
Saludos.
Lo de nombredelistadesplegable te lo había puesto como ejemplo, hay es donde tienes que poner el nombre de tu lista desplegable, que por lo que veo en el código debe ser listadesplegable96, los nombres de objetos no pueden tener espacios en su nombre, por eso lista desplegable 96 te daba error.
Las demás instrucciones que has puesto son un lio, no se puede asignar dos veces, nombrearch = tal = cual, aparte que no tiene ninguna lógica.
Prueba con esto:
NombreArch = Range("E5") & listadesplegable96.value & fecha
Perdona por la duplicidad.
Lo que puse es:
Sub GUARDAR()
Dim NombreArch As String
Dim fecha As String
    fecha = Range("E3")
    fecha = Replace(fecha, "/", "-")
    fecha = Replace(fecha, ":", "-")
    NombreArch = Range("E5") & listadesplegable96.value & fecha
    carpeta = "c:\clientes\"
    ActiveWorkbook.SaveAs carpeta & NombreArch
    Sheets("hoja1").PrintOut
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    Application.Quit
End Sub
Y en la macro se me queda en amarillo.
Y no deja terminar la acción.
¿Dónde se queda en amarillo? ¿En alguna linea en concreto?, ¿Te refieres a una linea dentro del código?, ¿Cómo la estas ejecutando?, parece como si tuvieras puesto algún punto de interrupción en el código o como si lo ejecutarías paso por paso con f8...
Hola.
Esta es la linea que se queda en amarillo
NombreArch = Range("E5") & listadesplegable96.value & fecha
cuando teemino de escribir la linea y paso a otra se pone an amarillo y deja de funcionar.
Gracias.
Vuelve a probar, una vez ya hubieras cerrado y abierto nuevamente el excel, he probado el código en una hoja nueva, y funciona perfectamente, aunque da error si el directorio que le indicas no existe, si la vas a guardar como hoja con macros debes añadir al nombre del archivo, al final, la extensión: ".xlsm"
Si se para en una linea que se pone amarilla presiona F5, pero siempre se para porque has puesto un punto rojo de interrupción o has ejecutado el código paso a paso con F8
Hola.
La macro lleva funcionando tiempo, lo único que le he tenido que poner una lista desplegable y quería que algrabar, ademas de con los range E3 & fecha, se le pudiera grabar también con en nombre que ponga en la lista desplegable.
Al ponerle listadesplegable96. value (que es mi caso), la macro da un error '424' en tiempo de ejecucion, es mas, si le quito range E3 & fecha y solo le dejo listadesplegable96.value, me sigue saliendo error '424' en tiempo de ejecución, por lo que entiendo que el comando no es válido, no sabría decirtte porque.
Si tienes alguna sugerencia al respecto, perfecto, sino, te agradezco el esfuerzo por ayudarme, pero tengo que buscar otra alternativa.
Gracias por todo.
Saludos.
Me refiero a que he probado el ultimo código que te he pasado y funciona correctamente. El error 424 te esta diciendo que no hay un objeto que se llame listadesplegable96.
¿Cómo has insertado el objeto?, si lo has insertado como control de formulario, debes borrarlo e insertarlo como control activex, en la ficha programador de excel, tienes un botón que pone propiedades, al darle ahí ves el nombre del control.
Para ver la ficha programador debes ir a las opciones del excel, el botón del logo que hay arriba a la izquierda de excel, y activar hay ver ficha programador.
Hola, ¿y cómo a ese cuadro combinado (control actives) le introduzco los rango de entrada?
Utiliza la propiedad ListFillRange del control:
NOMBREDELCONTROL.ListFillRange = "A1:A10"

Añade tu respuesta

Haz clic para o