Changement de valeur

Salut le forum,

comment puis-je signifier dans mon fichier que s'il y a un changement de valeur en A1, B1 doit redevenir vide?

Merci pour votre aide.

Bonjour,

dans le workbook_open, tu mets ce code :

Private Sub Workbook_Open()
Ancien = Sheets("Feuil1").[A1]
End Sub

dans un module standard, celui-ci :

Public Ancien

et enfin, de l'évènement de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
    If Target <> Ancien Then [B1] = "": Ancien = Target
End If
End Sub

Impeccable felix.

Merci beaucoup.

Est-ce que je peux faire la même chose pour une plage de données? Genre A1 à A10 pour sa valeur associée en B1 à B10?

Je me doute bien que je pourrais le faire en répétant le code autant de fois que nécessaire mais puis-je le faire plus simplement?

Re-,

essaie ces codes :

dans le workbook :

Private Sub Workbook_Open()
Set Ancien = CreateObject("Scripting.Dictionary")
For Each Cel In Sheets("Feuil1").Range("A1:A10")
    Ancien.Add Cel.Address, Cel.Value
Next Cel
Temp = Ancien.items
End Sub

dans un module standard :

Public Ancien As Object, Temp
Public Cel As Range

et dans l'évènement de feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing And Target.Count = 1 Then
    If Cells(Target.Row, 1) <> Temp(Target.Row - 1) Then
        Application.EnableEvents = False
            Cells(Target.Row, 2) = ""
        Application.EnableEvents = True
    Ancien.RemoveAll
    For Each Cel In Range("A1:A10")
        Ancien.Add Cel.Address, Cel.Value
    Next Cel
    Temp = Ancien.items
    End If
End If
End Sub

La ligne en rouge me cause un bug :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A1:A10")) Is Nothing And Target.Count = 1 Then

If Cells(Target.Row, 1) <> Temp(Target.Row - 1) Then

Application.EnableEvents = False

Cells(Target.Row, 2) = ""

Application.EnableEvents = True

Ancien.RemoveAll

For Each Cel In Range("A1:A10")

Ancien.Add Cel.Address, Cel.Value

Next Cel

Temp = Ancien.items

End If

End If

End Sub

Re-,

pour que cela fonctionne, tu dois dérouler le code, dans le workbook

Enregistre ton fichier, ferme-le, et rouvre-le

ou déroule le code, dans la fenêtre de l'éditeur

Finalement felix, ça fonctionne très bien. C'est seulement qu'on travailait sur A1:A10 alors que mes cellules réelles étaient en A2:A11. J'ai modifié le fichier et ça fonctionne merveilleusement bien.

Merci beaucoup.

Je garde ce fil ouvert car j'aurai éventuellement besoin d'aide pour que ça s'applique à la colonne C également et je ne pourrai ajuster le code moi-même puisque je ne le comprends pas.

Rechercher des sujets similaires à "changement valeur"