Utilizar datos introducidos mediante inputbox
Hola!
Estoy haciendo una macro que, entre otras, permite al usuario nombrar al archivo como quiera. Esto lo hago mediante un inputbox de esta forma (en este caso para cambiar el nombre de un archivo existente):
Dim nombrearchivo As String
nombrearchivo = InputBox("Por favor, introduzca el nuevo nombre del archivo.", "Insertar nuevo nombre de archivo", Nombre_sin_extensión)
'Y una vez introducido el nuevo nombre por el usuario, se lo cambio al archivo existente sin problemas'
Workbooks.Open Filename:="C:\Users\su\Desktop\Encuesta\Cuestionar io.xlsm"
ChDir "C:\Users\su\Desktop\Encuesta"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\su\Desktop\Encuesta\" + nombrearchivo + ".xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
A partir de aquí, quisiera seguir trabajando con la macro haciendo referencia a ese nombre, y es aquí donde empieza a darme problemas en instrucciones como:
Workbooks("nombrearchivo").Sheets("Hoja3").Delete
Y lo mismo cuando quiero utilizar la ruta y nombre de un archivo seleccionado por el usuario:
Inicio:
Dim cierre As Boolean
cierre = Application.Dialogs(xlDialogOpen).Show
'El valor de cierre sera False si se cancela el cuadro de diálogo sin elegir un archivo, y True cuando el usuario sí ha realizado su elección'
If cierre = False Then
GoTo Inicio
End If
'Y se captura el nombre y ruta de acceso a este archivo elegido por el usuario'
Dim nombre As String
Dim ruta As String
nombre = ActiveWorkbook.Name
ruta = ActiveWorkbook.Path
Y otra vez me da error cuando intento referirme a este archivo a través de estas variables en cuanto deja de ser libro activo, por ejemplo, para borrarlo cuando ya he terminado de trabajar con él:
Kill "ruta\nombre"
Resumiendo (espero haberme explicado medianamente bien :P): ¿Cómo hacer referencia a un archivo elegido por usuario (luego no conoceré a priori ni nombre ni ubicación del mismo) para trabajar con él una vez deja de ser libro activo?
Muchas gracias por la ayuda de antemano!
Estoy haciendo una macro que, entre otras, permite al usuario nombrar al archivo como quiera. Esto lo hago mediante un inputbox de esta forma (en este caso para cambiar el nombre de un archivo existente):
Dim nombrearchivo As String
nombrearchivo = InputBox("Por favor, introduzca el nuevo nombre del archivo.", "Insertar nuevo nombre de archivo", Nombre_sin_extensión)
'Y una vez introducido el nuevo nombre por el usuario, se lo cambio al archivo existente sin problemas'
Workbooks.Open Filename:="C:\Users\su\Desktop\Encuesta\Cuestionar io.xlsm"
ChDir "C:\Users\su\Desktop\Encuesta"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\su\Desktop\Encuesta\" + nombrearchivo + ".xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
A partir de aquí, quisiera seguir trabajando con la macro haciendo referencia a ese nombre, y es aquí donde empieza a darme problemas en instrucciones como:
Workbooks("nombrearchivo").Sheets("Hoja3").Delete
Y lo mismo cuando quiero utilizar la ruta y nombre de un archivo seleccionado por el usuario:
Inicio:
Dim cierre As Boolean
cierre = Application.Dialogs(xlDialogOpen).Show
'El valor de cierre sera False si se cancela el cuadro de diálogo sin elegir un archivo, y True cuando el usuario sí ha realizado su elección'
If cierre = False Then
GoTo Inicio
End If
'Y se captura el nombre y ruta de acceso a este archivo elegido por el usuario'
Dim nombre As String
Dim ruta As String
nombre = ActiveWorkbook.Name
ruta = ActiveWorkbook.Path
Y otra vez me da error cuando intento referirme a este archivo a través de estas variables en cuanto deja de ser libro activo, por ejemplo, para borrarlo cuando ya he terminado de trabajar con él:
Kill "ruta\nombre"
Resumiendo (espero haberme explicado medianamente bien :P): ¿Cómo hacer referencia a un archivo elegido por usuario (luego no conoceré a priori ni nombre ni ubicación del mismo) para trabajar con él una vez deja de ser libro activo?
Muchas gracias por la ayuda de antemano!
2 respuestas
Respuesta de santiagomf
1
Respuesta de kapapri
1