insertion commentaire automatique

titooooo

XLDnaute Occasionnel
bonjour ,

je viens vers vous encore une fois afin de trouver une solution à ce problème

j'ai un fichier qui es partagé entre plusieurs , je veut que excel inséré automatiquement un commentaire ans chaque cellule qu'un utilisateur aurait saisie ou changé.

exemple

Albert a saisie des valeur dans les cellule n1 n5 et m18 et sauve le travail et ferme le fichier

je veut que lorsque j'ouvre ce fichier excel me montre un commentaire avec le nom de Albert ( le nom 'utilisateur dans excel à dans n1 n5 et m18

es ce possible svp

d'avance merci
 

Valentin_Loupe

XLDnaute Occasionnel
Re : insertion commentaire automatique

Bonjour Titooooo, le forum,

Ci-joint, une proposition.
Il peut y avoir une lenteur lors de suppression de grande plage (une ou plusieurs colonne(s) par exemple).
A adapter éventuellement donc.

Bonne soirée,

Valentin
 

Pièces jointes

  • Ajout_Commentaires.xlsm
    15.7 KB · Affichages: 127

titooooo

XLDnaute Occasionnel
Re : insertion commentaire automatique

bonjour

encore une question stp

quel es le code pour avoir aussi la date

.

et comment faire pour mettre ce code avec un autre en meme temps

voici le 1ére que j'ai déja

Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In Worksheets
With ws
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="123456", UserInterfaceOnly:=True
End With
Next ws
End Sub


d'avance merci
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : insertion commentaire automatique

Bonjour,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
  If Not Intersect(Range("N1:N5,M18"), Target) Is Nothing And Target.Count = 1 Then     
    If Target.Comment Is Nothing Then Target.AddComment        ' Création commentaire
    Target.Comment.Text Text:=Target.Comment.Text & Target.Value & " Modifié par:" & Environ("UserName") & _
         " Le " & Now & vbLf
    Target.Comment.Shape.TextFrame.AutoSize = True
  End If
  Application.EnableEvents = True
End Sub

http://boisgontierjacques.free.fr/fichiers/Evenementiel/HistoriqueModif.xls
http://boisgontierjacques.free.fr/fichiers/Cellules/EspionCelluleModifiees.xls

JB
 

Pièces jointes

  • HistoriqueModification-1.xls
    40 KB · Affichages: 85
Dernière édition:

kingfadhel

XLDnaute Impliqué
Re : insertion commentaire automatique

Voila une autre solution plus discrète avec création d'un fichier texte log
en attendant de créer une autre feuille masquée au lieu du fichier texte
ci-joint

remarque: si tu as une large plage et beaucoup de changement ça t’ennuie de trouver quelle cellule modifiée d'ou vient l'utilité d'un fichier log ou feuille log (en instance pour le moment).
 

Pièces jointes

  • Creation_log_vba.xlsm
    16.7 KB · Affichages: 65
Dernière édition:

titooooo

XLDnaute Occasionnel
Re : insertion commentaire automatique

Bonjour BOISGONTIER ,

un ptit souci avec le code vba ci desssous ,

ca marchait bien sauf que je veux le modifier je veut qu'il me récupére que les valeur de la page data et des cellule F9 AC560 et non pas de toute la page car j'ai qq menu déroulant et lorsque je les déroule j'ai erreur d'éxécusion 1004 la methode undo de l'objet application a échoué


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name <> "Espion" Then
Application.EnableEvents = False
valsaisie = Target
Application.Undo
temp = Application.CountA(Sheets("espion").Range("a:a")) + 1
Sheets("espion").Cells(temp, 1) = Sh.Name
Sheets("espion").Cells(temp, 2) = Target.Address
Sheets("espion").Cells(temp, 3) = Now
Sheets("espion").Cells(temp, 4) = Target
Sheets("espion").Cells(temp, 5) = valsaisie
Sheets("espion").Cells(temp, 6) = Environ("username")
Target = valsaisie
Application.EnableEvents = True
End If
End Sub




a tite de 'indication voila le code que j'ai dans la page data pour faire le tri

Private Sub Worksheet_Change(ByVal Target As Range)
Dim aux$
If Not Intersect(Range("M3:O3"), Target) Is Nothing Then
Application.ScreenUpdating = False
If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
With Range("J6:L2335")
If IsEmpty(Range("M3")) Then .AutoFilter Field:=1 Else _
.AutoFilter Field:=1, Criteria1:=Range("M3")
If IsEmpty(Range("N3")) Then .AutoFilter Field:=2 Else _
.AutoFilter Field:=2, Criteria1:=Range("N3")
If IsEmpty(Range("O3")) Then
.AutoFilter Field:=3
Else
aux = Format(Range("O3").Value2, "dd/mm/yyyy")
.AutoFilter Field:=3, Criteria1:=aux
End If
End With
Application.ScreenUpdating = True
Application.Goto Range("E1"), True
End If
End Sub



d'avance merci
 

Discussions similaires

Réponses
6
Affichages
333

Statistiques des forums

Discussions
312 500
Messages
2 089 005
Membres
104 003
dernier inscrit
adyady__