Ho fatto un po' di ritocchi, e sistemato anche il grafico, così dovrebbe andare.
Codice:
Sub prova1()
Dim ultimaR As Integer
Dim matri As Variant
Dim conF As Object
With Application
.ScreenUpdating = False
.Range("A2").Sort Key1:=.Range("A2"), Order1:=xlAscending, Header:=xlYes
.Range("A:A").NumberFormat = "dd-mm-yy"
End With
With ThisWorkbook.ActiveSheet
.Range("P1").Resize(1, 2).EntireColumn.ClearContents
ultimaR = .Cells(.Rows.Count, "A").End(xlUp).Row 'ultima riga colonna A
matri = .Range("A2:A" & ultimaR).Value 'matrice valori colonna A
Set conF = CreateObject("Scripting.dictionary")
conF.CompareMode = vbTextCompare
For ty = 1 To UBound(matri, 1) 'leggo tutte le date colonna 1
conF.Item(matri(ty, 1)) = CLng(matri(ty, 1))
Next
.Range("P1") = "Data"
matri = conF.Items
.Range("P2").Resize(conF.Count, 1).Value = Application.Transpose(matri)
Set conF = Nothing
.Range("P:P").NumberFormat = "dd-mm-yy"
Range("Q1").Value = "Quantità"
With .Range("Q2").Resize(UBound(matri) + 1)
.Formula = "=COUNTIF(A$2:A$" & ultimaR & ",P$2:P$" & UBound(matri) + 2 & " )"
.Value = .Value
intervA = .Address
intervB = .Offset(0, -1).Address
End With
End With
If ActiveSheet.ChartObjects.Count > 0 Then ActiveSheet.ChartObjects.Delete
ActiveSheet.Shapes.AddChart xl3DColumnClustered, 100, 200
ActiveSheet.Shapes(1).Select
ActiveChart.SetSourceData Source:=Range(intervA, intervB), PlotBy:=xlRows
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Caption = "Riepilogo Frequenze"
With ActiveChart.Axes(xlCategory)
.HasTitle = True
.AxisTitle.Text = "Elenco Date"
.AxisTitle.Orientation = 0
End With
With ActiveChart.Axes(xlValue)
.HasTitle = True
.AxisTitle.Text = "Quantità"
.AxisTitle.Orientation = 90
End With
ScreenUpdating = True
End Sub