EXCEL : date de modification d'une cellule

Bonjour,

J'ai modiifé un code sur le forum pour écrire la date de modification d'une cellule dans EXCEL.
le code ne fonctionne pas tout le temps quand je finis la modification , si on pese sur enter, gauche, droite, haut ou bas, ca n'écrit pas tout le temps la date dans l'autre colonne, et des fois ca bugg quand on prend plusieurs cellules ou en commencant.

pouvez vous m'aider a reprogrammer :

Private Sub Worksheet_Change(ByVal Target As Range)
Static AncAdress As Variant, AncValeur As Variant

If AncValeur <> Range(AncAdress) Then

'La cellule que l'ont vient de quitter a été modifiée.
'Mettre l'action à exécuter.
If Target.Column = 18 Then
Target.Offset(0, 8) = Date
End If

End If
AncAdress = Target.Address
AncValeur = Target.Value

End Sub

merci.
Vince
Configuration: Windows XP

7 réponses

  1. ca semble fonctionner beaucoup mieux,

    merci les gars. C'est super ce site !!!!
    1. Contributeur
      bonjour

      à mon avis tu t'es compliqué la vie car ta macro ne se déclenche que si ta cellule est modifiée
      Private Sub Worksheet_Change(ByVal Target As Range)
      
      'La cellule que l'ont vient de quitter a été modifiée.
      'Mettre l'action à exécuter.
      If Target.Column = 18 Then      Target.Offset(0, 8) = Date
      
      End Sub 
      
      1. je vais voir souvent sans modifier, c'est pour ca que je veux que ca écrive la date seulement si j'ai modifié la cellule....
        merci pour l'idée....

        toujours pas résolu.........

        Vince.
        1. Contributeur
          Bonjour,

          et l'option 'outils / suivi des modifications' ne te convient pas ?
          eric
          1. Contributeur
            bonjour

            je vais voir souvent sans modifier, c'est pour ca que je veux que ca écrive la date seulement si j'ai modifié la cellule....

            C'est exactement ce que fait l'événement "change" car si tu regardes il ne se déclenche pas, seulement si tu modifies.
            1. essayez le code dans une feuille et vous verrez que la date ne s'écrit pas tout le temps avec mon code, il y a un probleme dnas le code en fonction de la facon dont on quitte la cellule modifiée...

              de plus , il y a un probleme si on fait des selections multiples, ca fiat bugger le fichier...

              merci.
              1. Contributeur
                Bonjour,

                tu es sûr de bien utiliser l'evenement Worksheet_Change et non pas Worksheet_SelectionChange ?
                Et as-tu lu le post 3 ?
            2. Contributeur
              bonjour

              la date ne s'écrit pas tout le temps avec mon code, il y a un probleme

              Je suis bien d'accord car tu as compliqué ton code inutilement et tes conditions empêchent le bon déroulement.

              Si tu laisses exécuter la seule condition sur la colonne cela fonctionnera mieux.

              En ce qui me concerne, ton code tel que tu l'a donné ne fonctionne jamais car les variables sont testées avec d'être valorisées.

              Comme le dit Éric, tu as essayé de mélanger du code qui reprend des valeurs de SelectionChange et dans ton cas cela ne parait pas s'imposer puisque tu veux la date si la colonne est modifiée.

              si on fait des selections multiples il faut aussi traiter toutes les occurrences modifiées (cas de copies multi-cellules) avec par exemple
              Private Sub Worksheet_Change(ByVal Target As Range)
              Dim cel As Object
              For Each cel In Target
                  If cel.Column = 18 Then cel.Offset(0, 8) = Date
              Next
              End Sub