sono nuovo di questo forum e aihmè anche inesperto di EXEL; che è il programma su cui sto sbattendo la testa da 3 giorni senza trovare la soluzione.
Ho interrogato il web e consulatato anche questo forum provando diverse soluzioni ma niente.
Per cui posto il problema sperando che qualcuno possa aiutami
In poche parole
PREMESSA
- Ho un foglio 'Sheet1' in cui ho 4 identiche caselle di scelta di valori da -60 a +60 (diciamo caselle "A1:A4")
- Il valore scelto in ogni casella è poi riprodotto in un foglio 'Sheet2' (diciamo nelle caselle "C1:C4" di questo 'Sheet2')
- All'interno del foglio 'Sheet2' tali valori subiscono diversi calcoli per poi dare un risultato nelle caselle "C5:C8"(sempre del 'Sheet2').
I dati di "C5:C8" ho necessità di metterli in ordine crescente (dal più piccolo al più grande) e a tal fine ho usato la seguente macro:
- Codice: Seleziona tutto
Sub SortAllRangeData()
' Place column header for temporary sort area.
Range("IV1").Value = "Numbers"
' Move numbers to temporary sort location.
For Each Cell In Selection
Range("iv65536").End(xlUp).Offset(1, 0) = Cell.Value
Next Cell
' Sort numbers in ascending order.
Range("IV1", Range("IV1").End(xlDown)).Sort Key1:=Range("IV2"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
' Move sorted data back to original sheet location.
Selection(1, 1).Activate ' Make sure the ActiveCell is the
' top left of Selection first.
CCnt = Selection.Columns.Count
RCnt = Selection.Rows.Count
CellCnt = Selection.Cells.Count
Tcell = 2
For c = 1 To CCnt
For r = 1 To RCnt
Range(ActiveCell.Address).Offset(r - 1, c + 1).Value = _
Range("iv" & Tcell).Value
Tcell = Tcell + 1
Next r
Next c
' Clean up temporary sort location.
Range("IV1", Range("IV1").End(xlDown)).Clear
End Sub
- Questa macro mi consente di mettere i dati di "C5:C8" in ordine crescente nelle caselle "E5:E8" (sempre del 'Sheet2')
PROBLEMA:
I dati di "C5:C8" vengono però aggiornati solo quando (selezionado l'intervallo "C5:C8") premo ALT-F8/Esegui
Ho invece bisogno che tutte e 4 le caselle si aggiornino automaticamente ogni volta che faccio una scelta in "A1:A4" dello 'Sheet1'.
Infatti devo usare i dati di "E5:E8" per fare altri calcoli (e ho bisogno che si aggiornino in simulatnea alle scelte dell'utente)
Ho provato in tanti modi a far attivare la macro automaticamente alla selezione (provato co i vari IfTarget.Adress=, Onchange ecc) ma la mia scarsa competenza non mi ha permesso di trovare una soluzione funzionante.
Qualche idea?
Grazie mille e Buona Pasqua