Utilizzare la macro OnEntry per creare un totale in esecuzione in un commento di cella in Excel

Riepilogo

In Microsoft Excel è possibile evitare riferimenti circolari quando si crea un totale in esecuzione archiviando il risultato in una parte non calcolante di un foglio di lavoro. Questo articolo contiene una procedura microsoft Visual Basic, Applications Edition di esempio che esegue questa operazione archiviando un totale in esecuzione in un commento di cella.

Ulteriori informazioni

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. Gli esperti Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare routine, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare routine atte a soddisfare specifiche esigenze.

Per creare un totale in esecuzione in una cella

  1. Aprire una nuova cartella di lavoro in Microsoft Excel.

  2. Avviare visual basic Editor (premere ALT+F11).

  3. Nel menu Inserisci, fare clic su Modulo.

  4. Digitare le macro seguenti in questo modulo:

       ' 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. Dopo aver digitato le macro, fare clic su Chiudi e torna a Microsoft Excel dal menu File .

  6. Salvare e chiudere la cartella di lavoro e quindi riaprirla.

    La macro Auto_Open digitata viene eseguita quando si apre la cartella di lavoro.

  7. Selezionare la cella C3.

    Si tratta della cella che conterrà un commento con il totale in esecuzione.

  8. Seguire questa procedura per eseguire la macro SetComment:

    1. Nel menu Strumenti, scegliere Macro e fare clic su Macro.
    2. Nella finestra di dialogo Macro fare clic su SetComment e quindi su Esegui.

Esempio di utilizzo del totale in esecuzione

Per usare il totale in esecuzione, seguire questa procedura:

  1. Digitare il numero 10 nella cella C3.
  2. Selezionare la cella C3 e notare che il commento visualizza "RT= 10" (senza virgolette).
  3. Digitare il numero 7 nella cella C3.
  4. Selezionare la cella C3 e notare che il commento visualizza "RT= 17" (senza virgolette).

Per rimuovere il totale in esecuzione

Per rimuovere il totale in esecuzione, seguire questa procedura:

  1. Selezionare la cella che contiene il totale in esecuzione che si desidera rimuovere.
  2. Fare clic con il pulsante destro del mouse sulla cella e scegliere Elimina commento dal menu di scelta rapida.