Macro d'horodatage conditionnelle

Bonjour,
je cherche à réaliser un horodatage sous excel 2003 pour savoir dans quel ordre des données sont saisies.
Je fais une macro nommée horodatage, enregistree dans le classeur PERSONAL.XLB, qui peut se lancer par un raccourci.
Mais je voudrais que la macro se lance toute seule et colle le resultat si sur une plage définie (par exemple B2:B20) une donnée est saisie.
Par exemple, si je saisi "bibi" en cellule B4, je voudrais que la macro se lance et colle en H4 la date et l'heure. Si après je saisi "toto" en B8, il faudra un résultat en H8.

Le plus simple serait un =si(B4<>0;lancer-ma-macro;).
C'est possible ?

Je suis pas très doué en VB, en fait...

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,
    ce que tu peux faire, c'est utiliser une procédure événementielle. Par exemple, la macro ci-dessous s'exécute à chaque changement dans ta feuille (restriction à la plage B2:B20) :
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("B2:B20")) Is Nothing Then
            Cells(Target.Row, 8).Value = Now
        End If
    End Sub

    Pour l'utiliser, clique droit sur l'onglet de la feuille concernée / Visualiser le code, puis colle ce code dans la page blanche.
    Ca nécessite bien sûr qu'à l'ouverture de ton fichier, tu autorises l'exécution des macros.
    A suivre...