Problema da Risolvere: Creare una macro VBA che analizza i dati di vendita in un foglio di lavoro e genera un report di riepilogo in un nuovo foglio, includendo il totale delle vendite per ogni categoria.

Codice Commentato:

vbaCopy codeSub GeneraReportRiepilogo()
    ' Questa macro genera un report di riepilogo delle vendite per categoria.

    Dim wsDati As Worksheet, wsReport As Worksheet
    Dim rngDati As Range, cella As Range
    Dim dictTotaleVendite As Object
    Dim categoria As String
    Dim totale As Double

    ' Imposta i riferimenti ai fogli di lavoro
    Set wsDati = ThisWorkbook.Sheets("DatiVendite")
    Set wsReport = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
    wsReport.Name = "ReportRiepilogo"

    ' Imposta il riferimento al range dei dati
    Set rngDati = wsDati.Range("A2:B" & wsDati.Cells(wsDati.Rows.Count, "A").End(xlUp).Row)

    ' Crea un dizionario per memorizzare i totali di vendita
    Set dictTotaleVendite = CreateObject("Scripting.Dictionary")

    ' Elabora i dati
    For Each cella In rngDati.Columns(1).Cells
        categoria = cella.Value
        totale = cella.Offset(0, 1).Value

        If dictTotaleVendite.Exists(categoria) Then
            dictTotaleVendite(categoria) = dictTotaleVendite(categoria) + totale
        Else
            dictTotaleVendite.Add categoria, totale
        End If
    Next cella

    ' Scrive i risultati nel foglio di report
    wsReport.Range("A1").Value = "Categoria"
    wsReport.Range("B1").Value = "Totale Vendite"
    Dim i As Integer
    i = 2
    For Each categoria In dictTotaleVendite
        wsReport.Cells(i, 1).Value = categoria
        wsReport.Cells(i, 2).Value = dictTotaleVendite(categoria)
        i = i + 1
    Next categoria
End Sub

Istruzioni:

  1. Assicurati di avere un foglio di lavoro denominato “DatiVendite” con due colonne: “Categoria” (Colonna A) e “Vendite” (Colonna B).
  2. Segui i passaggi dal livello 1 per inserire questo script nell’editor VBA.
  3. Esegui la macro per generare il report di riepilogo.

Questo script introduce concetti come la manipolazione di range, l’uso di dizionari per memorizzare e aggregare dati, e la creazione di nuovi fogli di lavoro. È ideale per chi vuole approfondire la gestione dei dati e la generazione di report in VBA.

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.