EXCEL : date de modification d'une cellule
psychoman4us
-
psychoman4us -
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
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
-
-
bonjour
à mon avis tu t'es compliqué la vie car ta macro ne se déclenche que si ta cellule est modifiéePrivate 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. -
Bonjour,
et l'option 'outils / suivi des modifications' ne te convient pas ?
eric -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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. -
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 exemplePrivate 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