Macro Excel para copiar automáticamente archivo outlook.pst de cada uno de los equipos de los usuarios en una carpeta

Dam, favor, se requiere macro al dar click desde un servidor recorra automáticamente todos los equipos de los usuarios y saque copia del archivo outlokk.pst y lo copie en una carpeta en el equipo del mismo usuario llamada d:\copia:

Nota: En la carpeta d:\copia del equipo del usuario la macro debe generar por nombre de archivo con la siguiente estructura:

nombreusuarion_nombremaquinam_Mes_Dia_Año.pst

La macro debe recorrer cada linea del siguiente archivo excel (que se encuentra en un servidor remoto) el cual contiene la siguiente info y sacar la copia en la carpeta del equipo del usuario d:\copia

                      A                                        B                       C                                         D                         E

1          Usuario                            Nombre Máquina  Carpeta_Ubi_pst               Fechahoy            

2         nombreusuario1                 maquina1              c:\usuario\outl.pst     02/02/2018                                  

3         nombreusuario2                 maquina2              c:\usuario\outl.pst     02/02/2018

4         nombreusuario3                 maquina3              c:\usuario\outl.pst     02/02/2018

n         nombreusuarion                maquinam              c:\usuario\outl.pst     02/02/2018     

2 respuestas

Respuesta
2

Entiendo que todo está en red pero prefiero preguntar por si acaso: En el archivo que mencionas ¿El nombre de usuario es el del "usuario de dominio"? Y el de cada maquina ¿es exactamente el que tiene cada PC? La fecha ¿es diferente para cada usuario? ¿La fecha responde a algo en especial? Es decir ¿puede tomarse la fecha de otro lado/cosa o solo existe en dicho archivo?

Abraham Valencia

Nota: Sé que la pregunta está dirigida, pero al ser un foro público y estar sin respuesta, daré una mano

Si Abraham el usuario es el del dominio, el nombre de cada máquina es el que tiene cada pc. La fecha, corresponde a la fecha en la cual se realiza la copia y sirve para en caso de dañarse el *.pst se pueda recuperar, simplemente retornando el archivo a la ubicación inicial

Aja, va quedando más claro. Solo algo importante, la ubicación del archivo .pst depende de su versión de Microsoft Outlook, su versión de Windows y cómo se configuró la cuenta de correo o como creó el archivo .pst, entonces ¿todos tienen el mismo windows y Office? ¿O los archivos *.pst han sido creados o exportados por uds. y están en alguna carpeta en especial de cada PC?

Abraham Valencia

Con lo último que digo es solo para estar seguro de que todos los archivos *.pst están en "C:\usuario" como parece ser

Si Abraham, todos con el mismo windows, office y c:\usuario

Gracias,

Aja, aunque no lo creas ya con esos datos la cosa no está tan complicada como sonaba. Ahora ando fuera de casa, llego y te ayudo.

Abraham Valencia

Prueba así:

Sub CopiandoArchivos()
Dim wshNetwork As Object
Dim Usuario As String, PCUsuario As String, ArchivoNuevo As String
Set wshNetwork = CreateObject("WScript.Network")
Let PCUsuario = wshNetwork.ComputerName
Let Usuario = wshNetwork.UserName
Let ArchivoNuevo = Usuario & "_" & PCUsuario & "_" & Month(Date) & "_" & Day(Date) & "_" & Year(Date)
FileCopy "C:\" & Usuario & "\outl.pst", "D:\copia\" & ArchivoNuevo & ".pst"
Set wshNetwork = Nothing
End Sub

Comentas

Abraham Valencia

Gracias Abraham, tengo las siguientes inquietudes:

1. En que parte de la macro abre  el archivo excel que va recorrer cada uno de los usuarios de la red ??

2. Faltaría un loop para recorrer todo el archivo ??

La macro que te envío, es basicamente un ejemplo ya que yo no puedo reproducir ni conozco detalles de tu red. Si quisieras usarla directamente, tendrías que: Ir de PC en PC y activarla ahí, lo que se hace fácil si colocar el libro/archivo con la macro en una carpeta compartida en red a la que todos los usuarios tengan acceso.

Si tu idea es que desde tu PC actives la macro y haga todo el trabajo en todas las PC desde ahí, te pregunto ¿tienes "acceso remoto" a todas las PC? De ser sí la respuesta tendrías que tener acceso "ilimitado" a los discos "C" y "D" de cada usuario ¿es así? Tú has colocado que todos tienen su copia del archivo en el disco/carpeta "C:\Usuario", por lo tanto dicho disco, al menos en apariencia, es de cada PC ¿o tu carpeta "C" es es realidad una carpeta compartida en red?

Abraham Valencia

Abraham, muchas ¡Gracias! 

Abraham, si tengo acceso remoto a todas las máquinas

Si tienes acceso remoto y eso incluye los dos discos en cuestión "C" y "D" (de todos los usuarios) en su totalidad ya no depende el Excel y su VBA sino de tu programa de acceso y como "ve" y/o accedes a las PC de todos los usuarios para de ese modo poder modificar las rutas de la macro o lo que sea necesario ya que si te permite interactuar con todas las PC y eso discos, un bucle que los recorra sería suficiente pero, eso ya dependería de ti mi estimado amigo ya que no conozco como y/o qué programa tengo y así me lo menciones, al o tenerlo, tampoco tengo como reproducirlo.

Lo otro es que como tienes acceso remoto, coloques el libro/archivo con la macro en cada usuario desde tu PC y la actives también desde tu PC, así también te evitar ir a "visitar" a cada uno. Pero ojo, acceso remoto no es garantía de acceso total.

Abraham Valencia

Respuesta
1

Creo que debiste hacer la pregunta sin dirigirla a una sola persona, amigo

A este paso mejor compramos pop corn para esperar ja ja ja broma broma

En serio, para todos hazla

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas