En este grupo En todos

Foro de Excel



Dudas con visual basic

eduard
Barcelona, España
Escrito por Eduard Ribas
el 03/02/2011

Buenas noches, tengo el siguiente código, gracias a anteriores consultas resueltas por ustedes, gracias por todo, que guarda el archivo de excell en la carpeta "Revisiones" del disco "C", asignándole como nombre de archivo el contenido de la celda "P3", que es la fecha.

ActiveWorkbook. SaveAs Filename:="c:\Revisiones" & [p3] & ". Xls", FileFormat:=xlNormal, _
Password:="123", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False

Luego me imprime la hoja activa en la impresora PDF. Tengo la versión 8. 0 del progrma Adobe acrobat professional instalado en mi PC

Application. ActivePrinter = "Adobe PDF a Ne03:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Adobe PDF a Ne03:", Collate:=True

Mis problemes y dudas són:

1. - quisiera que una vez guardo el archivo de excell con el nuevo nombre, enviara a la papelera de reciclaje el archivo antiguo, cuyo nombre es al anterior valor de la celda P3, pero que siempre cambia, al ir actualizándose la fecha. Cuál seria el código?

2. - al mandar a imprimir la hoja activa a la impresora PDF, tengo dos problemas:

2.1.- esta rutina no siempre la ejecuto des de la misma máquina, por tanto el puerto de salida a la impresora cambia, e sdecir para el ordenador A es Ne03, pero para el B es Ne05, por ejemplo, ¿Cómo puedo hacer para que reconozca automáticamente el puerto de salida?

2.2.- al crear el archivo PDF, me pide guardarlo por defecto en Mis Documentos y siempre tengo que buscar la ubicación que me interesa para guardar el archico, por ejemplo en c:\Revisiones\. ¿Cómo podria hacer para que lo guardara directamente en la ruta dónde esté ubicado el archivo excel?

Muchas gracias a todos por colaborar

Eduard

Eduard Ribas
Barcelona, España
Escrito por Eduard Ribas
el 03/02/2011

Se entendió bien?

Cacho Rodríguez
Ing. electrónica u.n.r.
Escrito por Cacho Rodríguez
el 04/02/2011

Vamos por partes:
_______________

2.2.- Reemplaza
c:\Revisiones\

por:
ThisWorkbook. Path & Chr(92)
_______________

2. 1- Podrías utilizar la propiedad UserName. Mira este ejemplo:

MsgBox "El usuario actual es: " & Application. UserName

Si este valor es diferente en ambos ordenadores, entonces ya tienes la forma de identificarlos.
_______________

1. - No estoy seguro de haberte comprendido...
Lo que creo comprender es que el libro que contiene la macro se llama "2011Ene15. Xlsm" (por ejemplo) y lo renombras (SaveAs) como "2011Ene16. Xlsm". ¿Tu quieres eliminar al "2011Ene15"?
_______________

Saludos, Cacho.

Eduard Ribas
Barcelona, España
Escrito por Eduard Ribas
el 04/02/2011

Gracias Cacho por responder, mira:

2. 2- La instrucción que crea el PDF es:

Application. ActivePrinter = "Adobe PDF a Ne03:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Adobe PDF a Ne03:", Collate:=True

Dónde reemplazo ThisWorkbook. Path & Chr(92)?

2.1.- no entendí lel ejemplo de la propiedad username, tengo que insertar este código en el mio?

1. - Exacto, eliminar el 2011Ene15, cómo seria el código?

Gracias

Eduard Ribas
Barcelona, España
Escrito por Eduard Ribas
el 04/02/2011

Cacho, de la instrucción ThisWorkbook. Path & Chr(92) entiendo que la tengo que insertar en paso anterior, es decir cuando guardo el archivo excel, ya havia provado la instrucción ThisWorkbook. Path, y no funciona, sigue guardando de forma predeterminada en mis documentos, ¿Que añade la parte Chr(92)?

Gracias