Mailing compartido: ONEDRIVE (BDD Excel, Doc Word)

Stephfun Mensajes publicados 11 Estado Miembro -  
Stephfun Mensajes publicados 11 Estado Miembro -
Hola a todos,

Tengo una base de datos (BDD) Excel que utilizo para hacer mailings (a través de un UserForm) en diferentes documentos Word tipo (en una carpeta DWT). Todo funciona muy bien.

Quisiera que mi trabajo pudiera ser utilizado por varios usuarios para alimentar la base, por lo que lo he depositado en un OneDrive compartido. Me enfrenté a un primer problema al declarar la ruta hacia los documentos tipo: la especificidad del identificador X del usuario es C:\Users\X\CheminONEDRIVE\DWT

Logré resolver el problema: al hacer clic en un botón, cualquier usuario puede acceder al DWT sincronizado en su escritorio.

DESAFORTUNADAMENTE el problema persiste cuando se accede a un documento tipo TYPE.doc. Un error indica que la ruta para encontrar la base de datos C:\Users\Xinitial\CheminONEDRIVE\BDD no es conocida. Con Xinitial el identificador del último usuario que registró su base de datos para la selección de los destinatarios. Así que se siguen manipulaciones tediosas: modificar las propiedades de las conexiones de datos (que parece que funciona una vez de cada tres) y luego proporcionar la nueva base de datos, etc.

De hecho, me gustaría que la selección de los destinatarios en Word se hiciera automáticamente, sin que nadie tenga que hacerlo. En resumen, al presionar el botón del UserForm para acceder al DWT, el usuario hace clic en TYPE.doc y accede directamente al documento de mailing.

Para ello, pensé en grabar una macro directamente en el documento Word TYPE.doc:


Sub Document_Open()
Dim xuser As String
Dim src As Variant

Set oWSHShell = CreateObject("WScript.Shell")
Cheminbureau = oWSHShell.SpecialFolders("Desktop")
xuser = UCase(Split(Cheminbureau, "\")(2)) 'Recuperación del X usuario
src = "C:\Users\" & xuser & "CheminONEDRIVE\BDD"

ActiveDocument.MailMerge.OpenDataSource Name:= _ 'Macro grabada
"C:\Users\" & xuser & "CheminONEDRIVE\BDD" _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=src;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLED" _
, SQLStatement:="SELECT * FROM `Feuille1$`", SQLStatement1:="", _
SubType:=wdMergeSubTypeAccess
End Sub


En resumen, al abrir el documento, la ruta hacia la base de datos BDD se declara automáticamente (selección de destinatarios)

DESAFORTUNADAMENTE esto no funciona. De hecho, desde el UserForm, cuando se accede al DWT y se selecciona nuestro documento TYPE.doc, este último no se abre realmente. Primero quiere seleccionar los campos y encontrar la base de datos (que entonces tenemos que encontrar manualmente). Aquí es donde me bloqueo, no sé dónde buscar.

¿Tendrán alguna idea o pista que me puedan guiar, por favor?

Objetivo: Seleccionar solo una vez los destinatarios y nunca más hacerlo por ningún otro usuario => generar directamente un documento WORD a través del UserForm de Excel.

Gracias de antemano por la valiosa ayuda que brindarán.

Stephfun

1 respuesta

  1. Stephfun Mensajes publicados 11 Estado Miembro 1
     
    Hola,

    Entiendo que el tema parece complejo y puede hacer que algunas personas se alejen... pero realmente necesito ayuda en este caso... Creo que si nos unimos (con las experiencias de cada uno) podemos resolver un problema que podría ayudar a otras personas en el futuro.

    Stephfun
    1