Operazioni su numeri con risultato nella colonna a lato. (23/04/03) E' proprio vero che le esigenze di ognuno di noi sono talmente varie che non è possibile definire degli esempi da standardizzare. Rimane tuttavia la possibilità di citare tutte le possibili applicazioni che si presentano di volta in volta, cercando di spiegare le necessità occorrenti ai vari casi, e relative soluzioni proposte, sperando così di poter fornire esempi assimilabili per altre esigenze. Questa volta riporto ancora un esercizio risolto con il solito ciclo For Each ...Next, ma in cui ovviamente sono diversi, dagli altri esempi visti, le problematiche riscontrate.
Vediamo il problema : in una colonna in cui il numero di righe può variare,
sono inseriti dei numeri. si richiede una macro che prenda il valore
contenuto nella cella A1 e lo sottragga al valore contenuto nella cella A2, Forse un immagine spiega meglio cosa si vorrebbe ottenere: In B1 abbiamo la differenza di A1-A2 (10-20=-10), in B2 la differenza di A2-A3 (20-30=-10), in B3 la differenza di A3-A4 (30-50=-20), in B4 la differenza di A4-A5 (50-30=20), ecc. ecc. La routine è semplice: visto che non sapremo quanto sarà lungo l'elenco nella colonna A, useremo la funzione End per trovare l'ultima cella che contiene dati, quindi eseguiremo un ciclo che per ogni cella della colonna A, otterrà il valore della cella stessa in quel momento identificata, lo sottrarrà al valore della cella successiva (identificata con Offset(1, 0)) e questo risultato lo inserirà nella cella a sinistra rispetto alla cella in quel momento attiva, identificandola con Offset(0, 1). Questa la routine:
Un esercizio molto semplice ma che ci abitua al concetto di ciclo, suggerendoci anche come reperire gli estremi di un'elenco e a identificare le altre celle che ci interessano con Offset.
Buon lavoro. |