Afficher en anglais

Partage via


Utiliser la macro OnEntry pour créer un total en cours d’exécution dans un commentaire de cellule dans Excel

Résumé

Dans Microsoft Excel, vous pouvez éviter les références circulaires lorsque vous créez un total en cours d’exécution en stockant le résultat dans une partie non calculée d’une feuille de calcul. Cet article contient un exemple de procédure Microsoft Visual Basic pour Applications qui effectue cette opération en stockant un total en cours d’exécution dans un commentaire de cellule.

Informations supplémentaires

Microsoft fournit des exemples de programmation à titre d’illustration uniquement, sans garantie expresse ou implicite. Cela inclut, sans y être limité, les garanties implicites de commercialisation et d’adaptation à un but en particulier. Cet article considère que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du Support technique Microsoft peuvent vous expliquer les fonctionnalités d’une procédure particulière, mais ils ne peuvent pas modifier les exemples en vue de vous fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques.

Pour créer un total en cours d’exécution dans une cellule

  1. Ouvrez un nouveau classeur dans Microsoft Excel.

  2. Démarrez le Rédacteur Visual Basic (appuyez sur Alt+F11).

  3. Dans le menu Insertion, cliquez sur Module.

  4. Tapez les macros suivantes dans ce module :

    VB
       ' The Auto_Open name forces this macro to run every time
       ' the workbook containing this macro is opened.
    
    Sub Auto_Open()
       '  Every time a cell's value is changed,
       '  the RunningTotal macro runs.
          Application.OnEntry = "RunningTotal"
       End Sub
    
       '----------------------------------------------------------
       ' This macro runs each time the value of a cell changes.
       ' It adds the current value of the cell to the value of the
       ' cell comment. Then it stores the new total in the cell comment.
       Sub RunningTotal()
    
    On Error GoTo errorhandler      ' Skip cells that have no comment.
    
    With Application.Caller
    
       '     Checks to see if the cell is a running total by
       '     checking to see if the first 4 characters of the cell
       '     comment are "RT= ". NOTE: there is a space after the equal
       '     sign.
             If Left(.Comment.Text, 4) = "RT= " Then
    
       '        Change the cell's value to the new value in the cell
       '        plus the old total stored in the cell comment.
                RT = .Value + Right(.Comment.Text, Len(.Comment.Text) - 4)
                .Value = RT
    
       '        Store the new total in the cell note.
                .Comment.Text Text:="RT= " & RT
            End If
          End With
    
    Exit Sub      ' Skip over the errorhandler routine.
    
    errorhandler: ' End the procedure if no comment in the cell.
          Exit Sub
    
    End Sub
    
       '--------------------------------------------------------------
       ' This macro sets up a cell to be a running total cell.
       Sub SetComment()
          With ActiveCell
       '     Set comment to indicate that a running total is present.
       '     If the ActiveCell is empty, multiplying by 1 will
       '     return a 0.
             .AddComment
             .Comment.Text Text:="RT= " & (ActiveCell * 1)
          End With
       End Sub
    
  5. Après avoir tapé les macros, cliquez sur Fermer et Revenir à Microsoft Excel dans le menu Fichier .

  6. Enregistrez et fermez le classeur, puis rouvrez-le.

    La macro Auto_Open que vous avez tapée est exécutée lorsque vous ouvrez le classeur.

  7. Sélectionnez la cellule C3.

    Il s’agit de la cellule qui contiendra un commentaire avec le total en cours d’exécution.

  8. Procédez comme suit pour exécuter la macro SetComment :

    1. Dans le menu Outils, pointez sur Macro, puis cliquez sur Macros.
    2. Dans la boîte de dialogue Macro, cliquez sur SetComment, puis sur Exécuter.

Exemple d’utilisation du total en cours d’exécution

Pour utiliser le total en cours d’exécution, procédez comme suit :

  1. Tapez le nombre 10 dans la cellule C3.
  2. Sélectionnez la cellule C3 et notez que le commentaire affiche « RT= 10 » (sans les guillemets).
  3. Tapez le nombre 7 dans la cellule C3.
  4. Sélectionnez la cellule C3 et notez que le commentaire affiche « RT= 17 » (sans les guillemets).

Pour supprimer le total en cours d’exécution

Pour supprimer le total en cours d’exécution, procédez comme suit :

  1. Sélectionnez la cellule qui contient le total en cours d’exécution que vous souhaitez supprimer.
  2. Cliquez avec le bouton droit sur la cellule, puis cliquez sur Supprimer le commentaire dans le menu contextuel.