Visualizza messaggio singolo
Vecchio 15-10-2017, 00.21.35   #22
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: Contare numero occorrenze data

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
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando