EXCEL : date de modification d'une cellule [Fermé]

Signaler
-
 psychoman4us -
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

7 réponses


ca semble fonctionner beaucoup mieux,

merci les gars. C'est super ce site !!!!
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 222
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 

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.
Messages postés
23630
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
12 novembre 2020
6 457
Bonjour,

et l'option 'outils / suivi des modifications' ne te convient pas ?
eric
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 222
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.

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.
Messages postés
23630
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
12 novembre 2020
6 457
Bonjour,

tu es sûr de bien utiliser l'evenement Worksheet_Change et non pas Worksheet_SelectionChange ?
Et as-tu lu le post 3 ?
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 222
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