Copia la somma delle celle selezionate negli Appunti

A volte ci vuole molto tempo per trovare alcune cose. Ma quando sono GIÀ stati inventati, dopo il fatto sembrano scontati e perfino banali. Dalla serie "cosa, era possibile?".

Fin dalle prime versioni, la barra di stato nella parte inferiore della finestra di Microsoft Excel mostrava tradizionalmente i totali per le celle selezionate:

Copia la somma delle celle selezionate negli Appunti

Se lo si desidera, è anche possibile fare clic con il pulsante destro del mouse su questi risultati e selezionare dal menu contestuale esattamente quali funzioni vogliamo vedere:

Copia la somma delle celle selezionate negli Appunti

E proprio di recente, negli ultimi aggiornamenti di Excel, gli sviluppatori Microsoft hanno aggiunto una funzionalità semplice ma geniale: ora quando fai clic su questi risultati, vengono copiati negli appunti!

Copia la somma delle celle selezionate negli Appunti

Beauty. 

Ma che dire di coloro che non hanno ancora (o già?) una tale versione di Excel? È qui che le semplici macro possono aiutare.

Copiare la somma delle celle selezionate negli Appunti utilizzando una macro

Apri nella scheda sviluppatore (Sviluppatore) editore Visual Basic o usa questa scorciatoia da tastiera altro+F11. Inserisci un nuovo modulo vuoto tramite menu Inserisci – Modulo e copia lì il seguente codice:

Sub SumSelected() If TypeName(Selection) <> "Range" Then Exit Sub With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection) .PutInClipboard End With End Sub  

La sua logica è semplice:

  • Prima viene la "protezione dallo sciocco" - controlliamo esattamente cosa viene evidenziato. Se non sono selezionate celle (ma, ad esempio, un grafico), uscire dalla macro.
  • Quindi usando il comando Ottieni oggetto creiamo un nuovo oggetto dati in cui la nostra somma di celle selezionate verrà archiviata in seguito. Un lungo e incomprensibile codice alfanumerico è, infatti, un link al ramo del registro di Windows dove si trova la libreria Libreria di oggetti di Microsoft Forms 2.0, che può creare tali oggetti. A volte viene anche chiamato questo trucco associazione tardiva implicita. Se non lo usi, dovresti creare un collegamento a questa libreria nel file tramite il menu Strumenti — Riferimenti.
  • La somma delle celle selezionate è considerata un comando Foglio di lavoroFunction.Sum(selezione), quindi l'importo risultante viene inserito negli appunti con il comando Inserisci negli Appunti

Per facilità d'uso, puoi, ovviamente, assegnare questa macro a una scorciatoia da tastiera usando il pulsante Macro linguetta sviluppatore (Sviluppatore — Macro).

E se vuoi vedere cosa è stato copiato esattamente dopo aver eseguito la macro, puoi attivare il pannello Appunti usando la piccola freccia nell'angolo in basso a destra del gruppo corrispondente su Il principale (Casa) scheda:

Copia la somma delle celle selezionate negli Appunti

Non solo l'importo

Se, oltre alla banale cifra, vuoi qualcos'altro, allora puoi utilizzare una qualsiasi delle funzioni che l'oggetto ci mette a disposizione Funzione foglio di lavoro:

Copia la somma delle celle selezionate negli Appunti

Ad esempio, c'è:

  • Somma – somma
  • Media – media aritmetica
  • Conteggio: numero di celle con numeri
  • CountA – numero di celle riempite
  • CountBlank – numero di celle vuote
  • Min – valore minimo
  • Max – valore massimo
  • Mediana – mediana (valore centrale)
  • ... ecc.

Compresi filtri e colonne di righe nascoste

Cosa succede se le righe o le colonne sono nascoste (manualmente o tramite un filtro) nell'intervallo selezionato? Per non tenerne conto nei totali, dovremo modificare leggermente il nostro codice aggiungendolo all'oggetto Selezione proprietà Celle speciali (xlCellTypeVisible):

Sub SumVisible() If TypeName(Selection) <> "Range" Then Exit Sub With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection.SpecialCells(xlCellTypeVisible)) . PutInClipboard End With End Sub  

In questo caso, il calcolo di qualsiasi funzione totale verrà applicato solo alle celle visibili.

Se hai bisogno di una formula vivente

Se sogni, puoi inventare scenari in cui è meglio copiare non un numero (costante), ma una formula vivente nel buffer, che calcola i totali di cui abbiamo bisogno per le celle selezionate. In questo caso, dovrai incollare la formula dai frammenti, aggiungendo ad essa la rimozione dei segni del dollaro e sostituendo la virgola (che viene utilizzata come separatore tra gli indirizzi di diversi intervalli selezionati in VBA) con un punto e virgola:

Sub SumFormula() If TypeName(Selection) <> "Range" Then Exit Sub With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText "=СУММ(" & Replace(Replace(Selection. Indirizzo, ",", ";"), "$", "") & ")" .PutInClipboard End With End Sub  

Somma con condizioni aggiuntive

E, infine, per i completamente maniaci, puoi scrivere una macro che riassumerà non tutte le celle selezionate, ma solo quelle che soddisfano le condizioni date. Quindi, ad esempio, apparirà una macro che inserisce la somma delle celle selezionate nel Buffer, se i loro valori sono maggiori di 5 e allo stesso tempo vengono riempite con qualsiasi colore:

 Sub CustomCalc() Dim myRange As Range If TypeName(Selection) <> "Range" Then Exit Sub Per ogni cella In Selection If cell.Value > 5 And cell.Interior.ColorIndex <> xlNone Then If myRange Is Nothing Then Set myRange = cell Else Imposta myRange = Union(myRange, cell) End If End If Next cell With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(myRange) .PutInClipboard End With End Sub  

Come puoi facilmente immaginare, le condizioni possono essere impostate assolutamente qualsiasi – fino ai formati delle celle – e in qualsiasi quantità (anche collegandole tra loro con operatori logici o o e). C'è molto spazio per l'immaginazione.

  • Converti formule in valori (6 modi)
  • Cosa sono le macro, come usarle, dove inserire codice Visual Basic
  • Informazioni utili nella barra di stato di Microsoft Excel

Lascia un Commento