Hace unos minutos me consultaron lo siguiente por el chat del Gmail (Hangout):
"...Soy administrador de una red y estoy buscando como migrar 200 archivos Excel 2003 a 2007... Quería ver si existe alguna macro que cambie la extensión de los archivos dentro del Excel, espero ser claro.."
Mi respuesta inicial es no lo sé, pero luego recordé que cuando desarrollaba aplicaciones en VBA para una empresa como Freelancer, desarrolle varias con manejos de archivos.
Entonces empecé a revisar un proyecto, luego otro, copiar código de aquí, probar por acá... y llegué a la siguiente solución, la cual explicaré paso a paso (por partes como diría Jack el destripador):
Paso 1: He creado 3 archivos de Excel y los he guardado en una versión 2003 y los he colocado dentro de una carpeta.
Paso 2: En un libro nuevo de Excel, ingreso al Visual Basic (ALT + F11) e inserto un módulo (Menú Insertar, opción Módulo)
Paso 3: En el módulo creado copio el siguiente código:
Sub CambiaVersion()
Dim LibroActual As Workbook 'archivo a abrir
Application.ScreenUpdating = False
ArchivosSeleccionados = Application.GetOpenFilename(, , , , True)
CantidadArchivos = UBound(ArchivosSeleccionados)
If CantidadArchivos > 0 Then
For I = 1 To CantidadArchivos
nombrearch = ArchivosSeleccionados(I)
Set LibroActual = Workbooks.Open(nombrearch)
nombretmp = LibroActual.Name
Posicion = Application.WorksheetFunction.Search(".", nombretmp)
nombretmp = Left(nombretmp, Posicion - 1)
nombretmp = nombretmp & "_2010" 'Esto le agrega al final de cada nombre _2010
LibroActual.SaveAs Filename:=nombretmp, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
LibroActual.Close False
Next I
End If
Application.ScreenUpdating = True
MsgBox "Se actualizaron de version a " & CantidadArchivos & " archivos."
End Sub
Paso 4: Cierro el Visual Basic y regreso al Excel. Ya dentro del Excel inserto un objeto cualquiera en mi hoja actual.
Como pueden apreciar en la imagen simplemente le escribí un texto dentro del objeto. Luego hago clic derecho en el objeto y selecciono la opción "Asignar Macros"
Finalmente hacemos clic en Aceptar, para luego hacer en clic en cualquier celda, y listo.
Paso 5: Hacemos clic en nuestro botón (objeto) y nos preguntará que archivos queremos abrir, podemos seleccionar todos al mismo tiempo y hacemos clic en abrir
Y listo
Espero que le sirva
Hola, me gusto mucho tu código, pero tengo una dudad, como haría para pasar del cualquiera versión al 2003 o 97 para un conjunto de libros Excel
ResponderBorrar