Tengo problemas con la macro grabada con el programa Microsoft Excel

Hola ELSAMATILDE:
Tengo algún problema con una macro grabada por mi, para Guardar como... Y no me salgo. Espero puedas ayudarme. Te explico, he grabado la siguiente macro para ejecutar desde un button:
ChDir _
"C:\Documents and Settings\PEDRO LUIS MARTIN\Mis documentos\BIG CAP\ARCHIVO GENERAL\ARCHIVO PARTICULAR
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\PEDRO LUIS MARTIN\Mis documentos\BIG CAP\ARCHIVO GERAL\ARCHIVO PARTICULAR\HOJA ACTIVA.xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Quiero guardar automáticamente una hoja, que siempre es diferente y tiene un numero de identificación en (A1:A2). Siempre diferente y único.
Debo guardarla en el ARCHIVO PARTICULAR, que son varios y diferentes.(Tengo identificado el nombre de cada archivo particular en una celda de la Hoja Activa)
Pues bien, al ejecutar la macro, siempre me guarda con el nombre de Hoja activa.xls, con el que grabe la macro. No me deja elegir para cambier el nombre de ARCHIVO PARTICULAR, ni tampoco el de la HOJA ACTIVA.
Como hago para asignar a ARCHIVO PARTICULAR y a HOJA ACTIVA, sus idenfiticaciones en la hoja.
Espero puedas ayudarme. Te envío un cordial saludo.

1 respuesta

Respuesta
1
TE dejo esta rutina para que adaptes a tus necesidades.
Notas:
Si la carpeta destino no está en una celda sino que tiene que ser establecida al momento de guardar el libro, fíjate en la Ayuda del Editor, la instrucción:
Application. GetOpenFilename.
Si la celda contiene también la extensión del libro quitá el texto ".xls" de la variable
Saludos
Elsa
http://es.geocities.com/lacibelesdepunilla/manuales_aplicaciones
Sub Macro1()
Dim ruta, carpeta, libro, texto As String
ruta = "C:\Documents and Settings\PEDRO LUIS MARTIN\Mis documentos\BIG CAP\ARCHIVO GERAL\"
carpeta = ActiveSheet.Range("A1").Value
libro = ActiveSheet.Range("A2").Value
texto = ruta & carpeta & "\" & libro & ".xls"
ActiveWorkbook.SaveAs Filename:=texto, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
Saludos Elsa:
Asombrado de tu rapidez de respuesta, me ha llegado antes de hacer la pregunta, je.je. Muy agradecido.
He adecuado la rutina que me enviaste, tal y como sigue:
Private Sub CommandButton2_Click()
Dim ruta, carpeta, libro, texto As String
ruta = "C:\Documents and Settings\PEDRO LUIS MARTIN \Mis documentos\BIG CAP\ARCHIVO FACTURACION"
carpeta = ActiveSheet.Range("H3:I3").Value
libro = ActiveSheet.Range("A1:B1").Value
texto = ruta & carpeta & "\" & libro & ".xls"
ActiveWorkbook.SaveAs Filename:=texto, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
Pero recibo un error nº l3, No coinciden los tipos.
Ambos datos a leer en la hoja están en formato texto, y ambos en celda combinada...(Por estética unicamente)
Así mismo ambas celdas están bloqueadas.Te cuento esto por si puede influir.
Antes de este error me daba otro de no encontrar la ruta, pero la he comprobado y es la correcta. En fin en algún sitio me he equivocado, o me he dejado algo.
No, el problema no está en la carpeta. Hice pruebas con carpetas mías (que también tiene propiedad Solo lectura) y la rutina no presenta inconvenientes.
Decime el contenido de las celdas H3 y A1.
Además cuando te salte el error te permite depurar. Entonces pasá el mouse sobre la variable 'texto' y fíjate qué valor tomó. Ahí nos daremos cuenta de cuál es el problema.
Hola otra vez Elsa:
Recompuesto todo, ya no me da "error 13", ahora me da "error1004"
Compruebo todo y resulta que :
*La carpeta existe
*No signos prohibidos
*¡¡ La carpeta final es de solo lectura !!
Mi sistema no me deja cambiarle el atributo a la carpeta ¿?
Incluso creando una nueva carpeta, no puedo deshabilitar el atributo de solo lectura.
¿A que es debido'
Saludos
Pedro
Si están en celdas combinadas, entonces el texto se puede obtener de la primer celda del grupo (H3 y A1 para el libro)
Las 2 variables quedan entonces:
carpeta = ActiveSheet.Range("H3").Value
libro = ActiveSheet.Range("A1").Value
Además veo que te falta la última barra en la variable ruta (supongo que en H3 no empezará con \)
Solucionado el problema, Elsa.
El error estaba en el nombre de la ultima carpeta, a la cual había dejado dos espacios entre sus dos nombres. Funciona perfectamente la macro.
Muy agradecido por tu ayuda.
Un cordial saludo. Pedro. Catalunya. España.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas