Capter les valeurs d'un range avant et après modification
Bonjour à tous,
Je sais que le sujet a déjà été traité plusieurs fois, mais on parle toujours que la valeur d'une cellule à la fois.
Mon problème est le suivant : J'essaie de capter les valeurs d'un range avant et après en utilisant la méthode .Undo pour pouvoir ensuite le transposer dans un Treeview. Comme vous remarquerez, je set la valeur du Range avant et après.. cependant je remarque qu'étant donné que je set un range.. ma valeur avant et après est toujours la même, soit la valeur après... je croyait qu'en «Settant» un range, la variable restait fixe.. mais elle semble changer lorsque je fais le .undo.. (car les valeurs font référence aux valeurs des cellules) mes Treeview load donc toujours la même information... y-a-t'il un moyen de fixer ma variable sans qu'elle ne change (sans passer par la création d'un tableau.. car on pert toutes les notions d'areas de rows et de columns..)
Merci beaucoup pour votre aide!! & bonne journée à tous!
Voici mon code dans la feuille en question :
Et voici le code pertinent de mon Userform appelé UF_Mod, mes Treeview avant et après se nomme TVBefore et TVAfter
Bonjour à tous,
Je sais que le sujet a déjà été traité plusieurs fois, mais on parle toujours que la valeur d'une cellule à la fois.
Mon problème est le suivant : J'essaie de capter les valeurs d'un range avant et après en utilisant la méthode .Undo pour pouvoir ensuite le transposer dans un Treeview. Comme vous remarquerez, je set la valeur du Range avant et après.. cependant je remarque qu'étant donné que je set un range.. ma valeur avant et après est toujours la même, soit la valeur après... je croyait qu'en «Settant» un range, la variable restait fixe.. mais elle semble changer lorsque je fais le .undo.. (car les valeurs font référence aux valeurs des cellules) mes Treeview load donc toujours la même information... y-a-t'il un moyen de fixer ma variable sans qu'elle ne change (sans passer par la création d'un tableau.. car on pert toutes les notions d'areas de rows et de columns..)
Merci beaucoup pour votre aide!! & bonne journée à tous!
Voici mon code dans la feuille en question :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If F_Cal.Cells(Target.Row, Pub_ColDate) > F_Cal.Range("DatePermise") Then
Application.EnableEvents = False
Application.Undo
Load UF_Mod
Set UF_Mod.TargetBefore = Target
UF_Mod.FillTV True, Target
Application.Undo
Set UF_Mod.TargetAfter = Target
UF_Mod.FillTV False, Target
Application.EnableEvents = True
UF_Mod.Show
End If
End Sub
Et voici le code pertinent de mon Userform appelé UF_Mod, mes Treeview avant et après se nomme TVBefore et TVAfter
Code:
Property Set TargetBefore(ByVal Target As Range)
Set TargetBef = Target
End Property
Property Set TargetAfter(ByVal Target As Range)
Set TargetAft = Target
End Property
Public Sub FillTV(ByVal Before As Boolean, ByRef Target As Variant)
Dim MyArea As Variant
Dim z As Integer
Dim x As Integer
Dim y As Integer
Dim MyTV As TreeView
Dim NodeArea As Node
Dim NodeDate As Node
Dim NodeEmpl As Node
Dim NodeData As Node
If Before = True Then
Set MyTV = Me.TVBefore
Else
Set MyTV = Me.TVAfter
End If
Set MyTV.ImageList = IL
MyTV.Nodes.Clear
z = 1
For Each MyArea In Target.Areas
Set NodeArea = MyTV.Nodes.Add(, , "Bloc " & z, "Bloc " & z, "Bloc")
For x = 1 To MyArea.Rows.Count
Set NodeDate = MyTV.Nodes.Add(NodeArea.Key, tvwChild, "Date " & z & "," & x, F_Cal.Cells(MyArea.Rows(x).Row, Pub_ColDate), "Date")
For y = 1 To MyArea.Columns.Count
Set NodeEmpl = MyTV.Nodes.Add(NodeDate.Key, tvwChild, "Employé " & z & "," & x & "," & y, F_Cal.Cells(Pub_RowEmpl, MyArea.Columns(y).Column), "Empl")
Set NodeData = MyTV.Nodes.Add(NodeEmpl.Key, tvwChild, "Cellule " & z & "," & x & "," & y, MyArea.Cells(x, y).Value2, "Data")
Next y
Next x
z = z + 1
Next MyArea
End Sub
Dernière édition: