IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Modifier une macro espion


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Par défaut Modifier une macro espion
    Bonjour le forum,
    Je viens vers vous pour une modif de macro.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Private Sub Workbook_Open()
    ' Traceur d 'ouverture de Fichier Utilisateur + Date + Heure ds Fichier Log.xls Externe
    ' Acitvation des macros OBLIGATOIRE
    ' © Piwa6291 23/11/2006
     
    Dim Wb As Workbook
    Dim a As Long
    ' Ouvrir le fichier Histo (attention chemin)
    Application.ScreenUpdating = False 'Masquer l'affichage
    Set Wb = Workbooks.Open(Filename:="\\TB\test\Services\Divers\LOG\CE")
     
    a = Wb.Sheets("Trace").Range("A65536").End(xlUp).Row + 1
     
    Wb.Sheets("Trace").Range("A" & a).Value = Application.UserName
    Wb.Sheets("Trace").Range("B" & a).Value = VBA.Date
    Wb.Sheets("Trace").Range("C" & a).Value = Now - Int(Now)
     
    'Fermer en sauvegardant les modifications
    Wb.Close True
    Application.ScreenUpdating = True 'Retablir l'affichage
     
    End Sub
    Ma question est :
    Que faut il modifier pour avoir uniquement le User, la date et l'heure des personnes qui se connectent en "entrant le mot de passe" ou qui enregistrent, en excluant les personnes qui se connectent en lecture seule ?
    Merci pour l'aide.
    Cordialement

  2. #2
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonjour à tous

    Le log "avec MdP" se fait par l'intermédiaire d'USF, ou autre je suppose. Mets ce code dans le module, juste après l'acceptation du MdP. Cela devrait fonctionner, je n'ai pas testé.

    Eric

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Par défaut
    Re,
    Je n'ai pas de USF, car je l'ai protege par : outils, Options, securite, Mot de passe pour la modif.

    Est il possible que l'enregistrement ne se fasse que pour ceux qui enregistrent ?

  4. #4
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Re

    De quelle manière les personnes mettent le mot de passe ?

    Eric

  5. #5
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Par défaut
    A l'ouverture, j'ai la demande "activer ou desactiver les macros", puis "en lecture seule ou indiquer le mot de passe" sur un USF.
    Ce USF est defini par outils, Options, securite, Mot de passe pour la modif.
    Il n y a pas de code dans le classeur, c'est defini par excel (Le classeur se trouve sur un serveur, pour un acces a tout le monde)
    Merci pour te pencher sur mon probleme

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour tlm,

    Dans l'événement BeforeSave de ThisWorkbook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim Verif As String
    Verif = Environ("UserName") & Chr(10) & Now
    MsgBox Verif
    End Sub
    ici les infos contenues dans la variable Verif sont affichées dans une MsgBox mais tu en fais ce que tu veux

  7. #7
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Re

    Ta question était :

    Citation Envoyé par Bernard67 Voir le message
    Que faut il modifier pour avoir uniquement le User, la date et l'heure des personnes qui se connectent en "entrant le mot de passe" ou qui enregistrent, en excluant les personnes qui se connectent en lecture seule ?
    Merci pour l'aide.
    Cordialement
    je ne pense pas qu'avec la macro que tu as déposée, cela fonctionne si les personnes :
    "....qui se connectent en "entrant le mot de passe"..." et uniquement se connectent et sortent sans sauvegarder.

    Eric

  8. #8
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Par défaut
    Merci Eric,
    Tu as raison, je n'avais pas teste cette solution, de rentrer le MDP et de fermer sans enregistrer. Sur ma 1ere macro c'est exact cela n'enregistre rien.
    Je viens de tester toute les possibilites avec ta macro et elle repond effectivement a tous les cas que j'avais demande.
    Cette fois j'ai fait tous les tests possibles, et c'est parfait.
    Merci encore a toi et fring pour l'aide.
    Bonne soirée.
    Cordialement

  9. #9
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Par défaut
    Bonjour le forum,
    Je pensais avoir testé toutes les possibilité, mais non !!.
    La macro de Fring et Edelweisseric enregistre les USER DATE et Heure des modifications.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub Workbook_Open()
    Dim Wb As Workbook
    Dim a As Long
    Dim Fs As Object, F As Object
     
    Set Fs = CreateObject("Scripting.FileSystemObject")
    Set F = Fs.GetFile(ActiveWorkbook.FullName)
    a = F.Attributes
    If F.Attributes = 32 Then
    Application.ScreenUpdating = False 'Masquer l'affichage
    Set Wb = Workbooks.Open(Filename:="\\TB\test\Service\Divers\LOG\CE")
    a = Wb.Sheets("Trace").Range("A65536").End(xlUp).Row + 1
    Wb.Sheets("Trace").Range("A" & a).Value = Application.UserName
    Wb.Sheets("Trace").Range("B" & a).Value = VBA.Date
    Wb.Sheets("Trace").Range("C" & a).Value = Now - Int(Now)
    Wb.Close True
    Application.ScreenUpdating = True
    End If
     
    End Sub
    Ce code enregistre les modifs faite dans le TCD (deplacement de champ..etc.) meme si celles ci ne sont pas enregistrées.
    Je souhaiterais si c'est possible, d'enregistrer le USER, DATE et HEURE uniquement si il y a modification et enregistrement du TCD.
    Merci pour l'aide
    Cordialement

  10. #10
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Suggestion de code à insérer:

    (Je ne suis pas ceratin de la syntaxe pour Workbook_close )


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public Save_log as boolean
    Public Wb As Workbook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_Open()
    Save_log = False
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_close()
    Wb.Close Save_log
    end sub


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
     
    Save_log = true
    End Sub

  11. #11
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Par défaut
    Je te remercie Godzestla,

    Malgre tout il y a toujours un cas qui cloche, c'est a dire qu'il me complete le user alors qu'il ne devrait pas.
    Le plus simple se serait que l'enregistrement se fasse uniquement si le mot de passe est rentre lors de l'ouverture du classeur lorsqu'il demande "Tapez le mot de passe autorisant l'acces en ecriture ou en lecture"
    Je precise que j'ai mis le mot de passe par : outil, Option, securite puis mot de passe pour la modification.
    Merci encore pour l'aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/10/2009, 18h25
  2. Réponses: 1
    Dernier message: 11/09/2009, 17h32
  3. [WD-2002] Macro qui modifie une macro
    Par Wanaka dans le forum VBA Word
    Réponses: 2
    Dernier message: 09/05/2009, 10h46
  4. Modifier une macro avec une autre
    Par Teppic dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 04/03/2008, 10h24
  5. Réponses: 5
    Dernier message: 04/01/2007, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo