Avantage MFC sur Worksheet_Change

coco_lapin

XLDnaute Impliqué
Bonjour le forum.

Pour que toutes les modifications apportées à un onglet soient de couleur rouge j'utilise le code suivant:

Private Sub Worksheet_Change(ByVal Target As Range)
Target.Font.ColorIndex = 3 ' en rouge
End Sub

L'inconvenient c'est qu'il n'est plus possible d'annuler une saisie (de revenir en arrière) étant donné que cette macro a été actionnée entre temps.

Pourrait-on réaliser ceci avec une MFC. Dans ce cas il sera possible d'annuler une saisie.
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour Coco, le forum

bien sur , il faut passer en référence absolue mais c'est moins facile à mettre en place sur des feuilles déja mises en forme et il faut un nom pour chaque ligne, un pour chaque cellule si tu veux pareil pour les colonnes.
pour la ligne 1
référence type
=Feuil2!A$1
pour la cellule
référence type
=Feuil2!$A$1
j'ai modifié l'exemple pour les lignes mais les lignes insérées ne seront pas sous MFC

Cordialement, A+
[file name=exemple_coco_20060113071159.zip size=5193]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_coco_20060113071159.zip[/file]
 

Pièces jointes

  • exemple_coco_20060113071159.zip
    5.1 KB · Affichages: 22

Brigitte

XLDnaute Barbatruc
Bonjour,


Claude vient de me signaler ce truc... Bernard (l'autre), c'est vraiment trop fort et je tiens à te dire bravo.

J'engrange... précieusement, mais retrouverais-je le jour où j'aurais besoin ?

Merci pour tout, pour la réponse mais aussi pour la question qui du coup a généré la réponse qui découle de la question qui a impliqué une si super réponse qui...
 

Dan

XLDnaute Barbatruc
Bonjour,

Yeahou, j'ai la feuille 2 qui reste cachée par défaut.
Si tu insères une ligne dans la feuille 1, il faut je crois sélectionner les deux feuilles de manière à ce qu'elle soit également dans la feuille 2.
Ai-je mal compris ta proposition ou non ?

:)
 

coco_lapin

XLDnaute Impliqué
Bonsoir le forum.

Dan, dans la dernière version de Yeahou, il n'y a pas besoin d'insérer une ligne dans la Feuil2.

La feuille 2 est masquée mais cela est normal car transparent pour l'utilisateur.

Le truc à Yeahou c'est magique.

Je vais bien maitriser ce qu'il a fait et je placerai une synthèse de tout ça sur ce fil, ça pourra servir. Mais il me faut un peu de temps et faire marcher mes neurones.
 

Dan

XLDnaute Barbatruc
Bonsoir,

OK si c'est bon pour toi coco mais là j'essaie de comprendre.

Si dans la feuille 1, j'insère une ligne en ligne 8 par exemple et que je remplis cette ligne par les chiffres sucessifs 8, 9, 10, 11, 12, 13; Je vois bien que les nouveau chiffre deviennent Rouge. De même si on ajoute des chiffres en dessous.

Maintenant efface les données de la ligne 3, puis enregistre ton fichier. Si tu remets les mêmes valeurs, cela peut être considéré comme modification pourtant Cela ne te met pas les données en rouge.
Pour qu'elles deviennent rouge il faut que tu changes la valeur pourtant ceci est une modification.

Vas à la ligne 30 par exemple, et encode des valeurs, cela te met pas non plus les données en rouge. Bien sur c'est parce que la cellule n'a de MFC.

Bref je pense ne pas avoir bien sasit ta demande qui pour moi était un peu de savoir récupérer les 10 dernières modifications faites dans une cellule. Là si je change 10x la cellule A8, je ne vais pas arriver à récupérer la 1ière valeur encodée.

en tout cas désolé de ne avoir pu t'aider

;)
 

coco_lapin

XLDnaute Impliqué
Bonjour Dan et le forum.

C'est vrai je n'ai pas expliqué le pourquoi des mes questions:
j'ai un utilisateur qui diffuse tous les mois un classeur de données.
L'onglet en question comporte beaucoup de lignes.
Après la diffusion j'exploite (ainsi que d'autres utilisateur) les données.
Pour nous faire gagner du temps il change la police en rouge sur les cellules qu'il a modifiées, ainsi il est plus facile, pour nous, d'identifier les modifications. En fait nous traitons uniquement les modifications.
Une fois le classeur diffusé il passe toutes les cellules avec une police noire pour faire comme un reset de ces modifications, et s'est reparti pour le mois suivant (ce sont les modif d'un mois sur l'autre qui nous interessene).
L'inconvénient de cette méthode manuelle est dangereuse car il peut très bien réaliser des modifications et oublier de modifier la police (normal erreur humaine). Le cas est déjà arrivé et du coup certaines commandes (il s'agit de commandes) n'ont pas été lancées à temps.

Pour pallier cet inconvénient je suis en train de modifier son classeur pour qu'à chaque modification d'une cellule la police devienne rouge dans cette cellule.

Pour réaliser ceci j'ai pensé à 2 méthodes:
1) Utiliser worksheet_change (comme expliqué au début du fil) mais l'inconvénient c'est que l'annulation de la modif avec les petites flèches du menu Excel est désactivée et ceci est trop contraignant.
2) Une autre solution est la MFC de Yeahou
3) En re-parcourant ce fil tu as donné une autre solutiopn qui est le suivi des modifications ou l'option partage du classeur. J'ai jamais trop utilisé et ne n'ai pas percuté. Je ne maitrise pas bien mais j'ai vu qu'avec suivi des modifications cela fait quelque chose d'interessant. Je vais fouiller dans cette direction.

Concernant le classeur de Yeahou cela fonctionne jusqu'à la ligne 26. Il faudrait que je modifie ce chiffre en fonction de mon application.
Tu as du comprendre que je ne souhaite pas identifier les modifications entre deux enregistrements (dans ton message précedant tu parlais d'enregistrement).
Si je modifie 10 fois la cellule A8 je peux revenir en arrière 10 fois contrairement à ce que tu as écris.
En fait c'est pas 5, 10 ou 20 retours en arrière que je souhaite, c'est ce que Excel s'est faire.

En tout cas je te remercie de ton dernier message, cela m'a permis de percuter.
En plus cela tombe bien, je n'avais pas encore implanté la solution de Yeahou, qui fonctionne mais qui est un pau plus lourde que le suivi des modifications. Je vais me familiariser avec le suivi des modifications et ensuite je déciderai.
Merci encore à toi.
Tu as tout de même dis quelquechose de faux dans ton message précédent 'en tout cas désolé de ne pas avoir pu t'aider' puisque c'est bien le contraire.
:woohoo: :p :) ;)


Je viens d'essayer le suivi des modifications, la cellule modifiée est entourée, le coin haut gauche de la cellule est peint en noir et un commentaire donne des infos sur la modification. Je n'ai pas d'imprimante à la maison mais avec un aperçu avant impression le coin à gauche en haut de la cellule disparait.
J'ai peur que les modif sautent moins à l'oeil que la MFC. Une solution serait, avant la diffusion du classeur, de détecter par macro les cellules modifiées et de mettre ainsi la police en rouge. Mais comment détecter les cellules qui ont été modifiées (existe-t-il une propriété VBA)?

Message édité par: coco_lapin, à: 14/01/2006 08:39

Message édité par: coco_lapin, à: 14/01/2006 09:16
 

Dan

XLDnaute Barbatruc
Bonjour,

Ah là les explications sont très très claires. Merci à toi.

Pour le suivi de modifications, en effet la cellule modifiée est entourée.

En vitesse, vois en utilisant l'option 'lister les modifications dans une autre feuille'. Tu découvriras une solution intéressante.

Je reviens plus tard pour regarder de plus près ton fil.

;)
 

coco_lapin

XLDnaute Impliqué
Re Dan.

Merci pour ton astuce 'lister les modifications dans une autre feuille'. Cela réponds à ma question 'comment détecter les cellules modifiées'. Tout ça c'est très riche en informations.

En effet dans l'onglet 'Historique' l'addresse des cellules est présente. Je pourrais alors récupérer les adresse en ensuite modifier le format des cellules modifiées comme je veux par macro.

L'enregisteur de code fonctionne correctement lorsque je réalise le suivi des modifications. C'est utile car lorsque l'on enregistre le classeur l'onglet historique disparait. J'ai donc l'intention de créer une macro à l'ouverture du classeur et ainsi générer l'onglet historique et modifier le format des cellules modifiées.

Mais avant de développer tous ceci j'essaierai, lundi, pour voir ce que donne les cellules modifiées à l'impression (le gris dans le coin en haut à gauche des cellules et la cellule entourées.

Dan merci encore pour ton aide, sans toi je serais passé à coté de tout ça.

Message édité par: coco_lapin, à: 14/01/2006 11:26
 

coco_lapin

XLDnaute Impliqué
Bonjour le forum.

J'ai finalisé mon application.
Je vous diffuse le résultat en annexe.

Je gère donc les modifications de l'onglet 'Données' en utilisant 'Suivi de modification' d'Excel.
Quelques macros permettent une utilisation plus souple pour l'utilisateur.

Les modifications se retouvent avec une police de couleur rouge pour améliorer l'aspect visuel.

Les explications sont données dans l'onglet 'macro'.

Merci encore à Dan et Yeahou (Yeahou passait par une MFC, c'est une autre solution, son astuce peut être aussi utilisée pour comparer deux onglets excel).

Message édité par: coco_lapin, à: 23/01/2006 21:55
 

Pièces jointes

  • suivimodification.zip
    45.8 KB · Affichages: 19

coco_lapin

XLDnaute Impliqué
coco_lapin écrit:
Bonjour le forum.

J'ai finalisé mon application.
Je vous diffuse le résultat en annexe.

Je gère donc les modifications de l'onglet 'Données' en utilisant 'Suivi de modification' d'Excel.
Quelques macros permettent une utilisation plus souple pour l'utilisateur.

Les modifications se retouvent avec une police de couleur rouge pour améliorer l'aspect visuel.

Les explications sont données dans l'onglet 'macro'.



Merci encore à Dan et Yeahou (Yeahou passait par une MFC, c'est une autre solution, son astuce peut être aussi utilisée pour comparer deux onglets excel).Message édité par: coco_lapin, à: 23/01/2006 21:55
[file name=suivimodification_20060123215643.zip size=50131]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/suivimodification_20060123215643.zip[/file]
 

Pièces jointes

  • suivimodification_20060123215643.zip
    49 KB · Affichages: 16

Discussions similaires

Réponses
7
Affichages
355

Statistiques des forums

Discussions
312 414
Messages
2 088 230
Membres
103 775
dernier inscrit
CriCri92