Menu

Macro [Résolu/Fermé]

Luni - 15 oct. 2016 à 14:16 - Dernière réponse :  Luni
- 16 oct. 2016 à 19:03
Bonjour à tous ! :-)

J'ai une demande un peu particulière et j'espère sincèrement trouvé une bonne âme qui pourra m'aider.

J'ai des données d'exploitation de D9 à I800. Serait-il possible de faire en sorte que si les données sont modifiées elles apparaissent en rouge et que les anciennes soient mises sous forme de commentaire dans la cellule correspondante ?

Merci infiniment pour votre aide :-)))))



Afficher la suite 

16 réponses

michel_m 15205 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 16 oct. 2016 à 17:55
+1
Utile
4
en définitive c'est bourré de pièges comme je le pressenais post 7

à tester encore:
http://www.cjoint.com/c/FJqp3z2yULh
Cette réponse vous a-t-elle aidé ?  
Suppppppppppppppperbeeee ! Merci énormément pour ta patience et ton investissement. Ça va vraiment bcp m'aider. :-))))
Je viens de voir juste un petit souci la macro fonctionne parfaitement mais lorsque je sélectionne des cellules (sans cliquer dessus) et même en dehors du tableau il m'indique une erreur dans cette ligne ?

If Not Intersect(Target, Range("B2:D11")) Is Nothing And Target <> "" Then
Utilisateur anonyme > Luni - 16 oct. 2016 à 18:35
 
À tout hasard, et sans aucune garantie, essaye avec (et sur une seule ligne) :

If Not Intersect(Target, Range("B2:D11")) Is Nothing And Not IsEmpty(Target) Then
 
Luni > Utilisateur anonyme - 16 oct. 2016 à 19:03
Ca marche, merci beaucoup albkan :-) ;-)
michel_m 15205 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - Modifié par michel_m le 15/10/2016 à 16:17
0
Utile
Bonjour

un exemple
http://www.cjoint.com/c/FJpoeU4Pf7h
pour voir le code
clic droit sur l'onglet de la feuille
visualiser le code

j'ai mis la couleur en jaune pour voir le petit coin rouge signalant un commentaire

edit 16:11
heu dans la macro worksheet_change ajoute juste avant End if
Application.DisplayCommentIndicator = xlCommentIndicatorOnly


bon ! par prudence,les codes...
Option Explicit
Public ad_old As String, Old As Variant
'--------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B2:D11")) Is Nothing Then
ad_old = Target.Address
Old = Target
End If
End Sub
'-------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If ad_old = Target.Address Then
With Range(ad_old)
.AddComment
.Comment.Visible = True
.Comment.Text Old
.Interior.ColorIndex = 6
Range("A1").Select
End With

Application.DisplayCommentIndicator = xlCommentIndicatorOnly
End If
End Sub

 Michel
0
Utile
Un génie ! Superbe :-)))) Petite question au cas où une personne se trompe Est-ce qu'il est possible de trouver une touche raccourci pour annuler l'opération ? ;-) ou autres ?
michel_m 15205 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 15 oct. 2016 à 18:46
0
Utile
8
merci,

Il y a peut-^tre une solution : je regarde dès que possible
:-. Oui ca fonctionne super bien ! :-) Mais en le mettant sur mon fichier il y a un petit bug je crois que c'est parce que dans certaines cellules il y a des heures et je crois qu'il aime pas ca! Est-ce que c'est grave docteur !? ;-) Excuse j'aurais peut-être du le préciser dès le départ !? :-(
michel_m 15205 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention > Luni - 16 oct. 2016 à 07:49
Bonjour,

je viens d'essayer par ex: 12:45 ou 3:00 et ca marche... ?
http://www.cjoint.com/c/FJqgaazPMZh

Par contre, que fait on avec une cellule vide? au départ, quand tu remplis le tableau vide cellule par cellule, la valeur inscrite fait passer la cellule en jaune avec commentaire.
il faudrait peut-^tre faire une macro "préparer"qui effacerait les couleurs et les commentaires

D'autre part:
1/ worksheet_change ne fonctionne que sur des saisies. Donc si ton tableau est issu de formules, celle-ci seront détruites.
2/ l'astuce de la base de registre n'est valable que sur monoposte. si le classeur est sur serveur, cela ne marche pas

tu dis...
Luni > michel_m 15205 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 16 oct. 2016 à 09:27
C'est une excellente question :-) il n'y a pas de formule tout est saisi manuellement.
Par contre lorsque les personnes saisissent les données pour la première fois il faudrait que la macro soit en pause. Peut-être cliquer sur un bouton pendant qu'ils saisissent ? Ou alors si la cellule est vide il ne doit pas la comptabiliser comme une modification :-) ça serait encore mieux :-)

Superbe ça fonctionne mais lorsqu'il s'agit des heures et que cela passe en commentaires ça me donne le résultat 0.31451 est-ce qu'il n'y aurait pas un moyen pour que ça m'affiche en format heures lorsqu'il s 'agit d'heures, ça serait vraiment top :-))))

Merci infiniment pour ton aide je me rends compte que c'est un travail de dingue mais qui sera vraiment utilisé à bon escient ! :-)
michel_m 15205 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention > Luni - 16 oct. 2016 à 09:46
C'est des heures partout ou quelques fois ?
J'ai modifié le tableau differemment c est des heures partout :-) c est plus simple :-)