PDA

Visualizza versione completa : Assegnazione di cella in EXCEL


riccardonard
10-05-2008, 15.04.51
Desidero proporre un quesito che ha sempre catturato la mia attenzione e di cui non ho trovato la soluzione: alcuni, in altri forum, mi hanno detto che non esiste soluzione, ma a me pare impossibile e non riesco a convincermene. Poiché in questo forum ho risolto già diversi problemini provo a riproporrre il quesito in questa sede. Ecco la questione:
Ho un foglio EXCEL qualsiasi; voglio assegnare parametricamente (dopo mi spiego meglio) un valore qualsiasi (numero, testo o altro) ad una cella qualsiasi del foglio, attraverso una formula generica. Mi spiego con un esempio:
Nella cella "B3" (ad esempio, ma vale per qualsiasi cella) voglio scrivere una funzione di assegnazione del tipo seguente:
'=Assegna(23, "D8")'
che significa: assegna il valore 23 (in questo caso numerico, ma potrebbe essere anche altro) alla cella D8 (ma potrebbe essere qualsiasi altra cella, ecco perché dicevo che l'assegnazione deve avvenire in modo parametrico, perché voglio che sia modificabile di volta in volta su necessità.
L'utilità di tale funzione potrebbe essere ad esempio, attraverso una macro, nell'assegnazione di valori calcolati; ad es. faccio una macro che mi calcola in un solo passaggio il massimo, il minimo e la media di una serie di valori presenti nel foglio e me li assegna in determinate celle del foglio.
A titolo informativo aggiungo che con l'antichissimo FrameWork degli anni '80 (di Ashton Tate) si poteva fare fare un lavoro così ed esisteva una funzione interna che mi pare si chiamasse @PUT(value, ToCell); la chiocciola era il simbolo di chiamata di funzione, come l'uguale per excel. Mi pare impossibile che dopo quasi 30 anni di sviluppo software non si riesca a fare una funzione così elementare con un software assai potente come Excel/Vba.
Grazie per l'attenzione
Riccardo

riccardonard
31-05-2008, 19.05.06
Sono già passate di qui 153 persone.
Qualcuno ha una vaga idea di come si possa creare una funzione/macro che faccia al caso?
Grazie
Riccardo

LoryOne
31-05-2008, 20.30.17
I'm 154.
Lo puoi fare con le macro.
Excel ha già un nutrito numero di funzioni, ma se non sono sufficienti, VBA consente di superare l'ostacolo.
A te basta aggiungere un modulo e specificare Public la funzione che vuoi creare. Tale funzione verrà automaticmante aggiunta al set di funzioni di Excel. ;)

Ps: La funzione Assegna è fattibilissima, solo che non basta specificare valore e rigacolonna. Il valore che specifichi deve necessariamente essere compatibile col formato impostato per rigacolonna, altrimenti la visualizzazione potrebbe non essere coerente col valore.

riccardonard
01-06-2008, 09.51.00
Ringrazio Loryone per il gentile interessamento, ma la questione è che io ho smanettato per mesi sull'argomento e non sono riuscito ad ottenere niente di funzionante.
La domanda era: c'è qualcuno che ha già fatto oppure è capace di fare una macro/funzione del genere e mi dice come si fa?
Grazie
Riccardo

LoryOne
01-06-2008, 11.21.52
1 - Vai in Strumenti->Macro->Visual Basic Editor
2 - Vai su Microsoft Excel Oggetti (noterai i fogli di cui si compone l'area di lavoro di Excel) e clicca col tasto del mouse al quale hai associato l'apparizione del menu contestuale
3 - Vai in Inserisci->Modulo
All'interno del modulo digita:
Public Function MiaFunzione()

End Function
4 - Riduci ad icona VBA
5 - Clicca su fx
6 - Seleziona la categoria "Definite dall'utente" e troverai MiaFunzione

La funzione definita dall'utente ora fa parte del set di funzioni utilizzabili da Excel e la sua chiamata è pubblica all'interno dell'ambiente

riccardonard
01-06-2008, 12.55.14
Grazie
Riccardo

riccardonard
06-06-2008, 15.58.51
Qualcuno dei 262 visitatori ha provato a creare la Macro/Funzione di assegnazione di una cella di Excel?
Ciao a tutti.
Riccardo

riccardonard
13-06-2008, 13.30.20
Qualcuno dei 348 visitatori ha provato a creare la Macro/Funzione di assegnazione di una cella di Excel?
Ciao a tutti.
Riccardo

erredierre
22-05-2015, 15.34.48
Una funzione scritta in una cella restituisce un valore che comparirà in quella stessa cella. Non è previsto che una funzione scriva valori in altre celle.
Per questo si usano le macro. Se hai già una macro che calcola min, max, media, etc puoi far si che la macro stessa scriva quei valori dove desideri:
cells(r,c).value=minimo
oppure
range('A1").value=minimo
PS probabilmente non ho capito la tua (antica) domanda