Bonjour, j'ai besoin de créer 2 macros privées dans un classeur - une qui stocke le contenu de la cellule après avoir cliqué dessus et une autre qui va stocker la nouvelle valeur de la cellule et l'envoyer avec le corps ancien texte dans la cellule et nouveau texte dans la cellule.Private Sub Worksheet_SelectionChange/Worksheet_Change
En vérité, je ne sais pas si c'est la bonne façon de le faire (ou même si c'est possible) mais je ne travaille pas souvent avec des macros privées, donc j'apprécierai toute aide. Merci beaucoup!
Voilà ce que je suis arrivé à ce jour:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
OldCellValue = ActiveCell.text
old_value = OldCellValue
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Area As Range
Dim OutlApp As Object
Dim IsCreated As Boolean
Dim cell As String
Dim old_value As String
Dim new_value As String
Set Area = Range("A1:E20")
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Area) Is Nothing Then
cell = ActiveCell.Address
new_value = ActiveCell.text
On Error Resume Next
Set OutlApp = GetObject(, "Outlook.Application")
If Err Then
Set OutlApp = CreateObject("Outlook.Application")
IsCreated = True
End If
OutlApp.Visible = True
On Error GoTo 0
With OutlApp.CreateItem(0)
.Subject = "Change in table"
.to = "someones email"
.HTMLBody = "Change in cell " & "<B>" & cell & "</B><br>" _
& "Old value: " & old_value & "New value: " & new_value
On Error Resume Next
.Send
Application.Visible = True
On Error GoTo 0
End With
If IsCreated Then OutlApp.Quit
Set OutlApp = Nothing
End With
End If
End Sub
Quel est votre problème - le code ne fonctionne pas, ne pas faire ce que vous voulez ....? – SJR
Ce code ne fonctionne pas. Il chargera le texte de la cellule quand je clique mais quand j'apporterai une modification et appuierai sur Entrée, il passera à la rangée suivante qui changera variable sur old_value. Parfois, il affichait même une cellule vide dans old_value même s'il y avait du texte dans la cellule et dans la cellule en dessous. –