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 :

Log d'activité sur un fichier (notification écriture/enregistrement)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2005
    Messages
    698
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 698
    Par défaut Log d'activité sur un fichier (notification écriture/enregistrement)
    Bonjour,

    J'utilise le code ci-dessous pour tracer les accès à un fichier excel.
    L'objectif est de savoir qui est sur le fichier lorsqu'il est utilisé.

    maintenant je souhaitrais aller plus loin, en référençant ceci:
    -Modification
    -Enregistrement
    -Sachant qu'une pop-up invite l'utilisateur à choisir d'ouvrir en lecture seule ou non, tracer si l'utilisateur est en lecture seule.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_Open()
     Open ThisWorkbook.Path & "\log_PTF_Assurances.txt" For Append As #1
     Print #1, Application.UserName, Now
     Close #1
     End Sub
    Auriez-vous quelques pistes pour enrichir mon fichier de log ?
    Merci à tous

  2. #2
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 037
    Par défaut
    Bonjour.
    A mon avis il faut des fichiers différents:

    Pour la modification d'une cellules, voici un code qui peut aider (il enregistre sur une feuille, donc, à remplacer par ton fichier)

    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
    Dim AncienneValeur As Variant
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' Evénement déclenché à chaque changement de cellule sélectionnée.
    ' L'argument Target représente la cellule active.
    AncienneValeur = Target.Value ' Mémorise la valeur de la cellule avant modification
    End Sub
    Private Sub Worksheet_Change(ByVal Target As Range)
    ' Evénement déclenché quand la valeur de la cellule change.
    ' L'argument Target représente la cellule active.
    Sheets("Feuil5").Rows(2).Insert ' Insertion d'une nouvelle ligne en ligne 2
    Sheets("Feuil5").Cells(2, 1) = Target.Address ' Coordonnées de la cellule
    Sheets("Feuil5").Cells(2, 2) = AncienneValeur ' Ancienne valeur
    Sheets("Feuil5").Cells(2, 3) = Now ' jour et heure de modification
    Sheets("Feuil5").Cells(2, 4) = Application.UserName ' Utilisateur
    Sheets("Feuil5").Cells(2, 5) = Target.Value ' Nouvelle valeur
    Sheets("Feuil5").Rows(20000).Delete ' Suppression de la ligne 20 000
    End Sub
    Pour l'enregistrement, il y a l'événement Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    Pour la lecture seule ou non je ne sais pas.
    Bonne continuation.

Discussions similaires

  1. problème écriture sur un fichier
    Par drinkmilk dans le forum MFC
    Réponses: 4
    Dernier message: 24/06/2007, 00h08
  2. Opération sur un fichier de log
    Par bebert49 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 26/04/2007, 11h04
  3. [debutant] extraction fichier log. Pourquoi 1 sur 2 !?!
    Par apprenti doc dans le forum Langage
    Réponses: 9
    Dernier message: 27/03/2007, 12h09
  4. Réponses: 6
    Dernier message: 12/12/2006, 16h13

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