OVH Cloud OVH Cloud

Modification d'un fichier xls

2 réponses
Avatar
Toto
Bonjour,

Comment savoir si un fichier xls a été modifié ? Un fichier excel est
ouvert, si je modifie la valuer d'une cellule comment le savoir ?

Merci de vos réponses

2 réponses

Avatar
FxM
Bonsoir,

Sans Excel : Somme MD5.

Par exemple :
http://www.md5summer.org
http://prdownloads.sourceforge.net/md5summer/md5v12005.zip?download

@+
FxM




Toto wrote:

Bonjour,

Comment savoir si un fichier xls a été modifié ? Un fichier excel est
ouvert, si je modifie la valuer d'une cellule comment le savoir ?

Merci de vos réponses




Avatar
Hervé
Salut,
Deux façons parmis tant d'autres. Inscription de la date et de l'heure de la
dernière modif dans la Base de Registre :
A mettre dans le module du classeur. A adapter pour "Workbook_Open" pour la
récupération des valeurs. La proc "Supprimer" sert à ôter toutes traces de
la Base de Registre :

'------------------------------------
'variable publique au module
'afin déviter les inscriptions
'à répétitions
Dim Modif As Boolean

Private Sub Workbook_Open()
Dim Jour As String
Dim Heure As String
'récupère le jour et l'heure dans la Base de Registre
Jour = GetSetting(ThisWorkbook.Name, "Modifier", "Jour", "")
Heure = GetSetting(ThisWorkbook.Name, "Modifier", "Heure", "")
If Jour <> "" Then
MsgBox "Ce classeur a été modifié le " & Jour _
& " à " & Heure
End If
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Range)
If Modif = False Then
Modif = True
'inscrit le jour et l'heure dans la Base de Registre
SaveSetting ThisWorkbook.Name, "Modifier", "Jour", Date
SaveSetting ThisWorkbook.Name, "Modifier", "Heure", Time
End If

End Sub
Sub Supprimer()
'proc à exécuter pour supprimer
'la clé de la Base de Registre
DeleteSetting ThisWorkbook.Name
End Sub

'-------------------------------------------
Inscription dans un Nom caché :

Dim Modif As Boolean

Private Sub Workbook_Open()
Dim Nom As Name
On Error Resume Next
Set Nom = ThisWorkbook.Names("Modifier")
If Err.Number = 0 Then
MsgBox "Ce classeur a été modifié le " _
& Right(Nom, Len(Nom) - 1)
End If
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Range)
If Modif = False Then
Modif = True
'inscrit la date et l'heure dans un Nom caché
ThisWorkbook.Names.Add "Modifier", _
Date & " à " & Time, _
False
End If
End Sub

Sub Supprimer()
Dim Nom As Name
On Error Resume Next
Set Nom = ThisWorkbook.Names("Modifier")
Nom.Delete
End Sub

Hervé.

"Toto" a écrit dans le message news:

Bonjour,

Comment savoir si un fichier xls a été modifié ? Un fichier excel est
ouvert, si je modifie la valuer d'une cellule comment le savoir ?

Merci de vos réponses