2017-10-17 20 views
0

J'ai un modèle Word 2010 avec des champs, et des listes déroulantes etc et un bouton de sauvegarde pour enregistrer le document dans un certain endroit avec un certain nom. Une partie du nom de fichier que je récupère en tant que nom d'utilisateur réseau dans VBA et une autre partie du nom de fichier est la date. Cela fonctionne bien pour moi mais quand je tente de tester le document avec un autre utilisateur, le code VBA se plaint à la ligne ci-dessous indiquant "Erreur de compilation: impossible de trouver un projet ou une bibliothèque".Word VBA causant des problèmes dans le modèle

strUserName = (Environ$("username")) 

Si je changé ci-dessus pour être comme la ligne ci-dessous à la place et un autre utilisateur ouvre le modèle et clique sur le bouton Enregistrer

strUserName = "validnetworkname" 

Il se plaint ensuite avec la même erreur lors de la prochaine référence VBA qui est

strDate = Date 

Quel est le problème ici s'il vous plaît?

Répondre

0

J'utilise cette fonction:

Private Declare Function apiGetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long 
Public Function UserName() As String 
    On Error GoTo ErrProc 

    Dim lnglen As Long 
     lnglen = 255 

    Dim strSpace As String 
     strSpace = String(254, 0) 

    Dim lngX As Long 
     lngX = apiGetUserName(strSpace, lnglen) 

    If lngX <> 0 Then GetUserName = Left(strSpace, lnglen - 1) 

Leave: 
    On Error GoTo 0 
    Exit Function 

ErrProc: 
    Resume Leave 
End Function 

Pour l'appeler:

Dim user_ As String 
    user_ = UserName 
+0

@kostats K. Merci, mais il est à la recherche comme il pourrait être l'ensemble de VBA « référence » qui est le problème. Ce que j'ai fait, j'ai commenté strUserName = (Environ $ ("nom d'utilisateur")) et fait strUserName = "nom de réseau valide" et quand un autre utilisateur ouvre le document et clique sur save il donne la même erreur à la ligne suivante un objet VBA qui est strDate = Date. Je vais mettre à jour mon message avec cette information. Des idées s'il vous plaît? – AJF

+0

On dirait qu'il n'y a pas d'accès à Visual Basic pour Applications. Voir ceci: https://msdn.microsoft.com/en-us/library/tt6cbe57.aspx –

+0

Merci Kostas. Oui, il semble que quelqu'un d'autre utilisant ceci n'a aucun accès à l'un des composants VBA. J'ai suivi le lien mais j'utilise Word 2010 et devais aller Fichier >> Options >> Trust Center. Dans la section "Sécurité et autres", la section "Centre de sécurité Microsoft Word" sélectionne "Paramètres Centre de confidentialité" et dans les paramètres de macros, sélectionnez "Activer toutes les macros" et cochez la case "Autoriser l'accès à le modèle d'objet de projet VBA ". Mais le résultat était le même. Est-ce que chaque utilisateur doit changer ses paramètres ou juste moi? Le modèle est enregistré en tant que fichier .docm! – AJF