Ya hice la macro para importar datos de excel, en los parámetros de TransferSpreadsheet me pide el nombre del archivo de excel, quiero saber si existe una forma de que pueda yo poner el nombre del archivo sin entrar a la macro, es decir que no sea fijo, si no cambiante, y quizá con poco código, agradecer cualquier ayuda
Creo que tu lo que quieres hacer es utilizar la misma macro para llamar a diferentes hojas de calculo, pero sin necesidad de modificar la esrtuctura de la macro, sino de forma "externa", por decirlo de alguna manera. Bueno, esto nos lo solucionamos con 3 lineas de codiguillo. Create un formulario (por ejemplo "form1") con un cuadro de texto ("via") y un botón de comando. Programa el evento "AL HACER CLICK" del botón (selecciona "procedimiento de evento"). Una vez que estés en la pantalla donde escribimos el código, escribe estas tres lineas: Dim str As String str = Forms!excel!via DoCmd. TransferSpreadsheet acImport, 0, "MiTabla", str, False, "a1:a1" De esta forma, hacemos que el argumento de la función equivalente al argumento archivo de la macro sea igua a la variable str y esta variable tome el valor desde el cuadro de texto del formulario. Ejecuta el formulario i en el cuadro de texto escribe el path de la hoja de calculo, haz click en el botón y... voila. En este caso, al hacer clic nos ha creado una tabla llamada MiTabla, en la que hay un solo campo que contiene el valor de la celda A1 de la hoja de excel seleccionada. Mediante este procedimiento, puedes hacer lo mismo con el rango, es decir, variar que celdas quieres importar sin necesidad de alterar la macro. Espero haberte servido de ayuda, si necesitas alguna aclaración, ya sebes donde encontrarme.