Problema da Risolvere: Creare una macro VBA che legge i dati da un intervallo di celle e genera una tabella di riepilogo in un nuovo foglio, mostrando la somma dei valori per ogni categoria unica presente nella prima colonna.

Codice Commentato:

vbaCopy codeSub GeneraTabellaRiepilogo()
    ' Questa macro genera una tabella di riepilogo in un nuovo foglio.

    Dim wsDati As Worksheet
    Dim wsRiepilogo As Worksheet
    Dim rngDati As Range
    Dim dict As Object
    Dim cell As Range
    Dim categoria As String
    Dim valore As Double
    Dim i As Integer

    ' Imposta i riferimenti ai fogli di lavoro
    Set wsDati = ThisWorkbook.Sheets("Dati")
    Set wsRiepilogo = ThisWorkbook.Sheets.Add
    wsRiepilogo.Name = "Riepilogo"

    ' Imposta il range dei dati
    Set rngDati = wsDati.Range("A2:B10") ' Modifica questo range secondo i tuoi dati

    ' Crea un oggetto Dictionary per memorizzare le somme
    Set dict = CreateObject("Scripting.Dictionary")

    ' Itera attraverso le righe dei dati
    For Each cell In rngDati.Columns(1).Cells
        categoria = cell.Value
        valore = cell.Offset(0, 1).Value

        ' Aggiunge o aggiorna la categoria nel dictionary
        If dict.Exists(categoria) Then
            dict(categoria) = dict(categoria) + valore
        Else
            dict.Add categoria, valore
        End If
    Next cell

    ' Scrive i risultati nel foglio di riepilogo
    i = 1
    For Each Key In dict.Keys
        wsRiepilogo.Cells(i, 1).Value = Key
        wsRiepilogo.Cells(i, 2).Value = dict(Key)
        i = i + 1
    Next Key
End Sub

Istruzioni:

  1. Assicurati di avere un foglio di lavoro chiamato “Dati” con due colonne: la prima per le categorie e la seconda per i valori numerici.
  2. Segui le istruzioni del Livello 1 per aprire l’editor VBA e inserire il codice.
  3. Modifica il range Set rngDati = wsDati.Range("A2:B10") per adattarlo ai tuoi dati.
  4. Esegui la macro.

Questo esempio introduce concetti più avanzati come la manipolazione di più fogli di lavoro, l’utilizzo di un oggetto Dictionary per memorizzare e sommare valori, e l’iterazione attraverso un range di celle. Questo tipo di script è utile per l’analisi e la sintesi dei dati in Excel.

Leave A Comment

Recommended Posts

Il Bitcoin è uno schema Ponzi?

In questo articolo, esaminiamo come funziona il Bitcoin, lo paragoniamo a quello che si sa degli schemi Ponzi e proviamo a rispondere a questa domanda.

Sei Libri Essenziali per Amanti della Fisica

Oggi, vi porto in un viaggio attraverso sei opere che non solo spiegano la fisica, ma la rendono vivace e affascinante. Questi libri non sono soltanto testi, ma finestre aperte sulle meraviglie dell’universo, scritti da alcune delle più brillanti menti del nostro tempo.