Enregistrer sous sans certaines macro

Oui, le nom d'utilisateur dans les options générales. C'est ce qui permet d'identifier qui a créé ou modifié le fichier.

C'est normalement rempli à l'installation.

Pas la peine de le modifier s'il y est mais il faut qu'il y ait qq chose

Bonjour ériiic

pour nous (tous les utilisateurs), c'est Administrateur par défaut!

Curieusement, je peux modifier le nom de l'utilisateur, mais au bout du compte l'auteur reste toujours l'Administrateur.

Je ne suis pas certain que je pourrai emprunter cette voie pour désactiver certaines macros!

Ça reste à tester.

merci pour le retour.

C'est parce que ton administrateur a eu la flemme de le faire à l'installation ou alors il considère que c'est à l'utilisateur de mettre ce qu'il préfère.

C'est quand même mieux quand chacun peut être identifié.

Si tu le changes

Sub test()
    MsgBox Application.UserName
End Sub

ne te retourne pas le nouveau nom ?

(il n'est pris en compte que pour un nouveau fichier, les anciens ont déjà leur créateur, ça ne change plus. Par contre 'Modifié par' doit changer si tu enregistres et rouvres)

Ca serait à faire au moins sur ceux qui traitent les demandes pour les reconnaitre.

Sinon si vous êtes en réseau on peut récupérer l'ident de connexion.

eric

Bonjour ériiic

votre proposition m'intéresse vraiment, mais j'ai de la difficulté à suivre vos explications.

Si je récapitule:

Dans un module1, je mets:

Public Const agentTraitement As String = "Michel" 'identifiants des agents de traitement

Dans un second module2, je mets:

Sub test()
    If InStr(agentTraitement, "," & Application.UserName & ",") = 0 Then
        ' c'est un utilisateur qui rempli une demande
       ' je met la macro
   Else
        ' c'est agents de traitement
       ' je ne fais rien ou bien autre chose
   End If
End Sub

J'ai bien suivi ces deux étapes, mais cela n'a aucun effet sur les macros. Quand j'ouvre une demande, les macros s'activent quand même.

Je dois peut-être mal intégrer ces codes.

Merci encore pour aide précieuse.

Bonjour,

oui pour le 1) sauf que tu dois encadrer les ident de "," donc : ",Michel,"

Ajoutées sinon Jean n'aura pas les macros alors que c'était Jean-Michel qui était inscrit.

non pour le 2)

En 2 c'est la structure que tu dois mettre pour chaque macro que tu réserves aux utilisateurs.

Sub ta_macro_tartenpion()
  If ....
    ' le code de ta macro
    ' qui n'est exécuté que si ce n'est pas un agent de traitement
    '...
  endif
End Sub

eric

Bonjour ériiic

merci encore pour votre solution. Après plusieurs essais, je ne suis pas parvenu à faire fonction le code. De toute façon, j'abandonne l'idée de passer par l'identification des agents traiteur, car le mouvement de personnel est trop considérable, et peu de collègues auraient le réflexe ou la compétence d'apporter les modifs nécessaires.

D'un autre côté, j'ai fini par comprendre comment utiliser et tester les macros de suppression. Le hic, c'est de pouvoir les maintenir dans la version xlm originale.

Or, du coup, je me demandais, s'il n'était pas possible de désactiver un événement du Workbook_Open plutôt que de le supprimer après avoir enregistrer une version du modèle. De sorte qu'à l'ouverture du fichier issu du model, il n'y aurait pas le message d'accueil ni le xlDialogSaveAs.

Merci pour votre précieuse aide.

Bonjour,

je me demandais, s'il n'était pas possible de désactiver un événement du Workbook_Open plutôt que de le supprimer

Ca correspond très exactement ce que je te proposais vu que tu n'arrivais pas à supprimer les codes que tu voulais.

car le mouvement de personnel est trop considérable, et peu de collègues auraient le réflexe ou la compétence d'apporter les modifs nécessaires.

Ca n'est nécessaire que pour ceux (ou celui) qui traitent les demandes, pas de ceux qui les déposent.

Mais bon, tu n'y arrives pas, tant pis. Je pense que tu y cherchais qq chose de compliqué alors que c'est très simple.

Pas d'autre idée non, désolé

eric

Bonjour ériiic

je crois avoir trouvé une solution toute simple pour mon fichier modèle :

Tant que la cellule A5 est vide l'événement d'ouverte s'exécute, dans le cas contraire non. Comme la cellule A5 sera forcément rempli par le requérant, les agents traiteur n'auront pas les événements d'ouverture.

Private Sub Workbook_Open()
'Pas demander mise à jour des liens
    Application.AskToUpdateLinks = False
    ActiveWorkbook.UpdateLinks = xlUpdateLinksNever

'Page d'accueil
    If Sheets("Formulaire").Range("A5").Value = "" Then
    MsgBox "Bienvenue!" & vbCrLf & vbCrLf & "Veuillez fournir tous les renseignements utiles à votre demande." & vbCrLf & vbCrLf & "Certaine demande requière un formulaire supplémentaire." & vbCrLf & vbCrLf & "Pour continuer, enregistrez votre demande pour fin d'archives.", vbInformation, "ATTENTION!"
    Application.Dialogs(xlDialogSaveAs).Show "DDS" & Format(Date, "ddmmyyyy") & "Division-"
    End If
End Sub

à la prochaine pour un nouveau problème....

Rechercher des sujets similaires à "enregistrer certaines macro"