espionnage de modification d'une plage

  • Initiateur de la discussion fdarro
  • Date de début
F

fdarro

Guest
Bonsoir à tous et à toutes

A la suite d'une modification d'une cellule dans la colonne H, je souhaite reseigner un fichier 'TOTO.XLS' fermé par les annotations suivantes:
Colonne A : Numéro de la ligne modifiée
Colonne B : Date et heure de l'opération de modification
Colonne C : Valeur de la cellule avant modification
Colonne D : Valeur de la cellule aprés modification
Merci pour votre aide
@+
 

Philippe

XLDnaute Occasionnel
Bonsoir fdaro, jean-marie,

Alors:

1 Tu crées un classeur 'TOTO.xls' que tu mets où tu veux sur ton disque

2 Dans la feuil1 de TOTO, Tu mets en A1:'N° de ligne mofifiée', en B1:'Heure et Date', en C1: 'Ancienne valeur' et en D1: 'Nouvelle valeur'

3 tu mets le code suivant dans la feuille que tu veux 'espionner'

Public SEL As Integer
Public valeur As Variant

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 8 Then Exit Sub
On Error GoTo ouv
nouvelvaleur = Target.Value
Workbooks('TOTO.xls').Activate
GoTo op
ouv:
Workbooks.Open Filename:='C:\\Documents and Settings\\blablabla\\TOTO.xls' 'l'adresse de 'TOTO'
op:
Sheets('Feuil1').Range('A65536').End(xlUp).Select
fin = (Selection.Row) + 1
Sheets('Feuil1').Range('A' & fin).Value = SEL
Sheets('Feuil1').Range('B' & fin).Value = Now
Sheets('Feuil1').Range('C' & fin).Value = valeur
Sheets('Feuil1').Range('D' & fin).Value = nouvelvaleur

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
SEL = Selection.Row
valeur = Selection.Value
End Sub


et le tour est joué... Salut fdaro 007
 

galopin01

XLDnaute Occasionnel
Bonsoir,
Il y a quand même de nombreuses restrictions, c'est probablement la raison pour laquelle les réponses ne sont pas nombreuses.
Il faut aussi penser à surveiller les sélections multiples dans ce cas il faut envisager des méthodes plus compliquées...
Quid si on supprime toute la colonne ou une selection de plusieurs cellules ?
Il faut aussi se demander quelles modifications ont veut surveiller si une cellule contient une formule sa valeur peut changer sans modification de la formule, ni sans sélection.
Enfin la valeur ou la formule peut changer également sans sélection préalable par macro...
Le problème est beaucoup plus vaste qu'il y parait. Pour le solutionner complètement il faudrait en savoir beaucoup plus sur le type de données à surveiller, la zone elle-même (faut-il vraiment surveiller les 64536 cellules de la colonne ?) ou peut-on se limiter à quelques dizaines voire centaines de cellules fonctionnelles...
A+
 

Philippe

XLDnaute Occasionnel
Bonsoir galopin,

tous les points que tu soulèves sont exacts, cependant, l'intitulé du post 'espionner...' et la question posée: ' à la suite de la modification d'une cellule en colonne H...' m'incite à penser que fdarro désire surveiller la saisie de données sur sa feuille, merci de nous éclairer sur ce point fdarro.

Galopin, puisque tu as soulevé tous ces problèmes sur un ton fort sympathique, il serait bien venu de ta part de nous proposer TA SOLUTION, qui sera, je n'en doute pas, fort instructive.. ;)
 

_Thierry

XLDnaute Barbatruc
Repose en paix
=> DEMO Spy sur Open/Change/Close sur TXT

Bonsoir Galopin, Philippe, Fdarro, le Forum

Très bonne réflexion Galopin, en fait il manque même une encore plus radicale, c'est bien de traquer si les cellules ont été changée depuis un autre classeur, fermé u pas fermé, mais qu'adviendra t'il des soit-disant modifications, si finalement on ferme ce classeur à surveiller en répondant NON au prompt 'Voulez-vous enregistrer les modification apportées'

Pour ton excellente analyse 'suppression de colonne' ou encore 'selection de plusieurs cellules', il n'y a pas vraiment beaucoup de parades... En fait il faudrait travailler sur un Back-Up et comparer les deux versions si on veux vraiment faire du tracking sans faire d'usine à gaz !...

Voilà, sinon et bien comme Philippe semble mal interpréter ton intervention, je tiens juste à dire que Galopin n'est pas agressif, juste il à un oeil averti qui exploite rapidement le pour et le contre de telle ou telle solution afin d'éviter de faire n'importe quoi. C'est une bonne qualité pour un développeur.

Sinon voici une petite démo qui devrait peut-être donner une partie de la solution à pas mal d'entre vous qui cherchent à faire un Spy...

En fait c'est un 'mixte' de deux de mes démos, l'une qui épiait les ouvertures et fermeture et l'autre les changements à l'intérieur du classeur...

Bonne Découverte et Soirée
@+Thierry [file name=XLD-Spy-Watching-You-Txt_20050410205357.zip size=18716]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/XLD-Spy-Watching-You-Txt_20050410205357.zip[/file]

Message édité par: _Thierry, à: 10/04/2005 20:53
 

Pièces jointes

  • XLD-Spy-Watching-You-Txt_20050410205357.zip
    18.3 KB · Affichages: 150
  • XLD-Spy-Watching-You-Txt_20050410205357.zip
    18.3 KB · Affichages: 163
  • XLD-Spy-Watching-You-Txt_20050410205357.zip
    18.3 KB · Affichages: 174

michel_m

XLDnaute Accro
Re:=> DEMO Spy sur Open/Change/Close sur TXT

Bonsoir à tous


Ci joint proposition complétant celle de Philippe (je pense qu'il s'agit d'une saisiemais comme d'hab, le demandeur ne se manifeste pas: il profite du WE ?)

l'ancienne valeur est mémorisée et il y a exclusion si délection multiple

Toto.xls reste fermé : la zone A1:D1 est nommée db_taupe

Pour fonctionner, il est IMPERATIF que la référence 'microsoft activeX data object 2;X soit cochée dans l'éditeur VBE (alt+F11) outils-références.

Thierry, je regarderai ta démo après le film d'espionnage (...) à la télé, j'adore les James Bond



A+
Michel [file name=taupe.zip size=14953]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/taupe.zip[/file]
 
Dernière édition:
F

fdarro

Guest
Re:=> DEMO Spy sur Open/Change/Close sur TXT

Bonjour à tous

Merci à Philippe, galopin01, michel_m, JeanMarie et _Thierry pour vos réponses et vos réflexion.

La réponse de Philippe me satisfait conplètement.
Merci pour votre aide et @+
 

Discussions similaires

Statistiques des forums

Discussions
312 438
Messages
2 088 410
Membres
103 847
dernier inscrit
Girardon