Je suis en train d'exécuter une erreur en essayant de définir une cellule Excel à la date actuelle chaque fois que quelqu'un modifie d'autres cellules dans la feuille de calcul.
Voici le code:
Dim EditDate As Date RowNum = ActiveCell.Row ColNum = ActiveCell.Column If ColNum = 11 Or ColNum = 13 Or ColNum = 19 Or ColNum = 20 Or ColNum = 21 Or ColNum = 22 _ Or ColNum = 23 Or ColNum = 24 Then Application.EnableEvents = False EditDate = Date() ActiveWorksheet.Range("Y," & RowNum).Value = EditDate Application.EnableEvents = True End If
Je reçois une erreur requirejse par l'object chaque fois que j'essaie d'apporter un changement dans l'une de ces cellules. Comment puis-je faire fonctionner?
Je pense que votre problème n'était pas de déclarer RowNum
ou ColNum
comme quelque chose. Vous voulez que ces deux soient un type
numérique (j'utilise Long
dans cet exemple).
Comme PasortingcK l'a déclaré, ActiveWorksheet
devrait être ActiveSheet
. Vous avez également eu d'autres erreurs de syntaxe, mais jetez un coup d'oeil à mon code pour une version fonctionnelle de ce que vous voulez.
Je ne sais pas si vous avez mis ce code. J'aimerais héberger le code dans l'object Worksheet
tant Worksheet
de Change Event
.
Code de travail:
Sub Worksheet_Change(ByVal Target As Range) Dim EditDate As Date Dim RowNum As Long Dim ColNum As Long RowNum = ActiveCell.Row ColNum = ActiveCell.Column If ColNum = 11 Or ColNum = 13 Or ColNum = 19 Or ColNum = 20 Or ColNum = 21 Or ColNum = 22 _ Or ColNum = 23 Or ColNum = 24 Then Application.EnableEvents = False EditDate = Format(Now(), "d/m/yyyy hh:mm") ActiveSheet.Range("Y" & RowNum).Value = EditDate Application.EnableEvents = True End If End Sub
Vous devez utiliser ActiveSheet.Range("Y," & RowNum).Value = EditDate
, not ActiveWorksheet