Le celle hanno una formattazione condizionale con set di icone, che non consentono riferimenti "relativi" ma solo "assoluti", per cui ogni cella ha una formattazione condizionale diversa e copiando l'intervallo la formattazione condizionale rimane ancorata alle celle di origine.
Ti propongo un'alternativa piu' semplice, magari puoi adottarla...
La tua tabella ora finisce in colonna D.
Nella colonna adiacente, quindi in E5, iserisci la formula
- Codice: Seleziona tutto
=SE(F5<>"";F5/D5;"")
Applica a E5 una formattazione condizionale:
-Tipo di regola: Formatta tutte le celle in base ai relativi valori
-Stile formato: Set di icone
-Scegli lo stile con le 3 frecce
-seleziona l'icona Verde (su); imposta Tipo=Numero; scegli "quando il valore è... >... 1"
-seleziona l'icona Gialla (orizzontale): sempre Tipo=Numero; scegli "Quando <=1 e ... >= ... 1"
-seleziona l'icona Rossa (giu'); Tipo=Numero; la scelta residua e' "Quando <1"
-Completa con Ok, Ok
Assegna al carattere della cella il colore Bianco (quello dello sfondo), in modo che la scritta non sia visibile, e restringi la colonna fino a che si veda la sola icona.
A questo punto se in F5 scrivi un valore superiore a quello di D5 comparira' la freccia in su; freccia orizzontale e freccia verticale compariranno per valori uguali o inferiori a quelli di colonna D.
A parte la visualizzazione su due colonne, l'aspetto dovrebbe essere simile e il comportamento uguale a quello della colonna che usi oggi; inoltre e' immediatamente copiabile.
Quindi puoi copiare E5 e incollarla verso il basso fino a E29 e usare la colonna F per i nuovi input.
Quando devi aggiungere una nuova coppia di colonne, ti bastera' selezionare E5, estendere la seleziona verso il basso (Contr-Maiusc-Freccia in giu'), copiare (Contr-c), selezionare la nuova origine (che sara' G5), e incollare (Enter).
Tutto questo potra' anche essere ottenuto con questa macro:
- Codice: Seleziona tutto
Sub NewCoppia()
'
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy Selection.Range("A1").Offset(0, 2)
Selection.Range("A1").Offset(0, 3).Value = 1
Selection.Range("A1").Offset(0, 2).ColumnWidth = Selection.EntireColumn.ColumnWidth
Selection.Range("A1").Offset(0, 2).Select
End Sub
NB: La macro lavora sulla "selezione corrente", quindi prima di lanciarla assicurarsi di essere posizionato in testa alla colonna che contiene la formula e la formattazione condizionale.
La macro che adattava la formattazione condizionale sulle nuove colonne non sara' piu' necessaria.
Fai sapere se puoi adottare questa semplificazione...