Ciao a tutti,
devo automatizzare un'analisi su dei dati che presentano sempre lo stesso numero di colonne ma un diverso numero di righe.
Quello che ho fatto finora è scrivere la macro che mi calcola le varie cose che mi servono (sarebbe la fase finale del lavoro già affrontato qui: http://answers.microsoft.com/it-it/office/forum/office\_2013\_release-excel/contare-valori-univoci-per-data/14a85fc3-182c-495d-aa44-b17378f36ee7).
Il problema è che queste macro usano i riferimenti al primo set di dati: come faccio a creare un rifermento in base al numero di righe del set di dati utilizzato di volta in volta?
Avevo pensato di far selezionare le colonne e fargli dare un nome da utilizzare poi nelle formule, ma ho il problema che in alcune colonne mi serve dalla riga 2 alla riga n-1, poiché la n contiene un totale di cui non ho bisogno.
Vi lascio tutto il codice della macro, è ancora incompleto ma ci sono sicuramente altri errori che spero mi aiuterete a trovare.
Grazie
Sub macro_completa()
' cancella_date Macro
'
Range("AE12").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
' riempimento_date Macro
'
'
Range("AE11").Select
Selection.DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:= _
xlDay, Step:=1, Stop:=Range("AC2"), Trend:=False
' individua nomi commesse
Range("V2:V706").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"V2:V706"), CopyToRange:=Range("AD2"), Unique:=True
' da i nomi agli intervalli per le formule
' [FORMULA DA AIUTO MICROSOFT]
'Range("c1", Range("c1").End(xlDown)).Select
' [FORMULA CON REGISTRATORE MACRO]
'Range("J2").Select
'Range(Selection, Selection.End(xlDown)).Select
'Range("J2:J706").Select
'ActiveWorkbook.Names.Add Name:="qta", RefersToR1C1:= _
' "=Foglio1!R2C10:R706C10"
' NUMERO SCONTR X GIORNO
Range("AF11").Select
Selection.FormulaArray = _
"=SUM(IF(RC[-1]=date,1/COUNTIFS(date,RC[-1],R2C16:R706C16,R2C16:R706C16),0))"
Selection.AutoFill Destination:=Range("AF11:AF41")
Range("AF11:AF41").Select
' NUM SCONTRINI X GIORNO X COMMESSA
' calcolo commessa 1
Range("AG11").Select
Selection.FormulaArray = _
"=SUM(IF((RC[-2]=R2C7:R706C7)*(R2C30=Criteria),1/COUNTIFS(R2C7:R706C7,RC[-2],R2C16:R706C16,R2C16:R706C16,Criteria,R2C30),0))"
Selection.AutoFill Destination:=Range("AG11:AG41")
Range("AG11:AG41").Select
' calcolo commessa 2
Range("AK11").Select
Selection.FormulaArray = _
"=SUM(IF((RC[-6]=R2C7:R706C7)*(R3C30=Criteria),1/COUNTIFS(R2C7:R706C7,RC[-6],R2C16:R706C16,R2C16:R706C16,Criteria,R3C30),0))"
Selection.AutoFill Destination:=Range("Ak11:Ak41")
Range("AK11").Select
' calcolo commessa 3
Range("AO11").Select
Selection.FormulaArray = _
"=SUM(IF((RC[-10]=R2C7:R706C7)*(R4C30=Criteria),1/COUNTIFS(R2C7:R706C7,RC[-10],R2C16:R706C16,R2C16:R706C16,Criteria,R4C30),0))"
Selection.AutoFill Destination:=Range("AO11:AO41")
Range("AO11").Select
' calcolo commessa 4
Range("AS11").Select
Selection.FormulaArray = _
"=SUM(IF((RC[-14]=R2C7:R706C7)*(R5C30=Criteria),1/COUNTIFS(R2C7:R706C7,RC[-14],R2C16:R706C16,R2C16:R706C16,Criteria,R5C30),0))"
Selection.AutoFill Destination:=Range("AS11:AS41")
Range("AS11").Select
' IMP VENDUTO X COMMESSA
' calcolo commessa 1
Range("AH11").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS(R2C12:R706C12,R2C7:R706C7,RC[-3],Criteria,Extract)"
Range("AH11").Select
Selection.AutoFill Destination:=Range("AH11:AH41")
Range("AH11").Select
' calcolo commessa 2
Range("AL11").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS(R2C12:R706C12,R2C7:R706C7,RC[-7],Criteria,R3C30)"
Range("AL11").Select
Selection.AutoFill Destination:=Range("AL11:AL41")
Range("AL11").Select
' QTA VENDUTA X COMMESSA
Range("AI11").Select
ActiveCell.FormulaR1C1 = _
"=SUMIFS(R2C10:R706C10,R2C7:R706C7,RC[-4],Criteria,Extract)"
Range("AI11").Select
Selection.AutoFill Destination:=Range("AI11:AI41")
Range("AH11").Select
End Sub