I riferimenti circolari sono in A2 e H2.
Non avendo la minima idea di quale sia lo scopo della formula in A2, mi limito a dire che per evitare il rif circolare dovresti variare la parte
CONTA.SE($A$2:IP2;IP2) in
CONTA.SE($B$2:IP2;IP2).
Idem quella in H2, che e' anche piu' criptica: dato che la col A, a parte A2 che contiene un numero, contiene dei nomi/cognomi, e' evidente che le varie
CONTA.SE(A:A;A2) o
SOMMA.SE(A:A;A2;E:E) sono destinate a risultare perennemente 0.
La cosa piu' probabile e' che in H2 dovresti mettere 0 o lasciare vuoto e nelle H sottostanti non dovresti usare formulazioni del tipo
CONTA.SE(A:A;Ax) ma piuttosto
CONTA.SE(A$3:A$20000;Ax); tra l' altro ne guadagnerai anche in tempi di ricalcolo (il 20000 mi pare sia la tua stima di max righe; vedi anche la parte relativa all' ultima domanda).
In quanto a eliminare le col B-F-G, immagino che ci sia qualche macro che indirizza le celle in modo "assoluto", mentre le formule sono "relative"; voglio dire che ad esempio la parte
CONTA.SE(IP:IP;IP2) della formula n A2, eliminando quelle tre colonne diventa
CONTA.SE(IM:IM;IM2); se una macro continua a compilare la colonna IP e' evidente che la formula calcola altre cose.
Puoi o modificare le formule o modificare le macro (le macro sono state eliminate nel file pubblicato, a parte due); se non conosci al volo la sintassi puoi registrare una macro mentre applichi la formula.
La formula che applichi tramite la macro
Estrai_clienti_completi diventerebbe ad esempio
- Codice: Seleziona tutto
ActiveCell.FormulaR1C1 = _
"=COUNTIF(R3C[-4]:R20000C[-4],RC[-4])-SUMIF(R3C[-4]:R20000C[-4],RC[-4],C[-1])+(COUNTIF(R3C1:RC[-4],RC[-4])>1)*1"
Avendo eliminato le col B-F-G probabilmente dovrai, questa formula, non inserirla in col H ma in col E, quindi modificherai nella macro
Estrai_clienti_completi anche la
Range("H1:H" & UR).Select in
Range("E1:E" & UR).Select; anzi (visto che ti ho suggerito di togliere la formula in H2 e, aggiungo ora, quella in H1) modificherai in
Range("E3:E" & UR).SelectPer "l' ultima domanda" (il contatore nelle formule di col H): poiche' le formule sono applicate dalla macro
Estrai_clienti_completi, ti bastera' calcolare UR non su col H ma su col A:
- Codice: Seleziona tutto
UR = Range("A" & Rows.Count).End(xlUp).Row
Pero' e' opportuno che prima inserisci anche un
- Codice: Seleziona tutto
Range("H:H").Clear
(diventa
Range("E:E").Clear se eliminando B-F-G vuoi mettere la nuova formula da E3 in giu').
Direi che hai qualche spunto da lavorarci su...
Ciao, fai sapere.