Author Topic: VBA- Lezione 2 - Come far interagire foglio-codice  (Read 39617 times)

0 Members and 2 Guests are viewing this topic.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #60 on: 23 May , 2012, 23:15:41 PM »
Prima di andare avanti, vorrei apportare qualche modifica ai vari fogli. Intanto vorrei aumentare sia il numero massimo dei vertici della poligonale e sia il numero massimo dei pali portando il primo a 15 ed il secondo a 20
Poi vorrei che nella colonna che riporta il numero progressivo dei vertici (ed anche in quella che riporta il numero progressivo dei pali) la numerazione fosse proposta in automatico da excel partendo da 1 e fermandosi al numero dato in input. Infine vorrei che le tabelle fossero "più pulite" cioè che non fossero presenti quegli inutili zeri nelle righe dove non sono presenti vertici o pali.

Prendiamo per esempio la tabella delle coordinate dei vertici della poligonale:



Uploaded with ImageShack.us

Cambiando il numero dei vertici della poligonale, per esempio da 7 a 10, excel mi deve scrivere in automatico i numeri da 1 a 10 e fermarsi li e non devono apparire quegli zeri che erano stati messi per evitare termini indesiderati.

La questione della numerazione la possiamo risolvere inserendo a partire dalla seconda riga (quindi dalla cella dove ci sta il 2) una formula che inserisce la somma del valore della cella precedente + 1. Questo fino a quando il valore della cella precedente è minore di NV. altrimenti facciamo scrivere la stringa vuota "". Quindi dobbiamo usare un SE. Ma potendo trovare nella cella precedente il valore di stringa vuota, dobbiamo imporre al Se una condizione E.  La condizione E accetta due o piu' condizioni logiche e avra come rissultato il valore VERO solo se tutte le condizioni logiche della funzione E sono vere. Trattasi pertanto dell'operatore AND di Boole.
Scriveremo pertanto la funzione:
= SE(  E(cella<>"";cella<NV)  ;   cella+1   ;     "")

Nel nostro caso posizionandoci nella cella D14 digiteremo la formula

=SE(E(D13<>"";D13<NV);D13+1;"")

e la copieremo in tutte le celle sottostanti



Uploaded with ImageShack.us

Adesso occupiamoci di far sparire gli zeri che non desideriamo.
Per fare scrivere questi zeri al posto degli eventuali termini indesiderati, avevamo inserito le formule antro una funzione SE. Qualcosa del tipo:

=SE(D14>0;E14-E13;0)

Sarà sufficiente modificare la condizione del SE nella seguente:

=SE(D14<>"";E14-E13;"")

modifica che si apportara anche  alle formule della colonna appresso e vedremo sparire gli zeri. Per contro visualizzeremo una sfilza di errori ###### che toglieremo inserendo le formule di quesste colonne con errori sempre entro una funzione SE.



Uploaded with ImageShack.us

Procediamo col Se anche per le colonne Sxi ed Syi ed avremo la tabella pulita dagli zeri inutili e senza segnalazione di errori
Se proviamo a cambiare il numero dei vertici vedremo la numerazione aggiornarsi automaticamente. Sarà cura dell'utente aggiungere le nuove coordinate o togliere quelle eventualmente presenti in piu' o apportare le correzioni alla coordinate agendo solo e soltanto nelle celle verdi antecedute dal numero di vertice.



Uploaded with ImageShack.us

Stessa cosa puo farsi nella tabella delle coordinate dei pali e, perchè no, anche nelle tabella delle combo e dei carichi




« Last Edit: 23 May , 2012, 23:19:24 PM by afazio »
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #61 on: 24 May , 2012, 19:52:54 PM »
Ho deciso di mettere in condivisione quanto fin qui prodotto.

https://www.box.com/s/c86a7f90d677aba69ad4
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline ferrarialberto

  • Semi Esperto
  • **
  • Posts: 137
  • Karma: 26
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #62 on: 24 May , 2012, 22:44:56 PM »
Ho dato un'occhiata veloce al tuo foglio di calcolo, ottimo.
Se mi consenti, ha un po' il limite di una trattazione alla Winkler con valore costante di rigidezza (in genere varia sensibilmente con la profondità). Poi ci sono molte altre trattazioni e casistiche oltre Winkler, comunque è già un ottimo punto di partenza.

Ciao.
ing. FERRARI Alberto - www.ferrarialberto.it

Offline afazio

  • Veterano del forum
  • ****
  • Posts: 663
  • Karma: 273
  • dovizio mi delizio
    • CI si vede al Bar
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #63 on: 25 May , 2012, 08:02:24 AM »
Ho dato un'occhiata veloce al tuo foglio di calcolo, ottimo.
Se mi consenti, ha un po' il limite di una trattazione alla Winkler con valore costante di rigidezza (in genere varia sensibilmente con la profondità). Poi ci sono molte altre trattazioni e casistiche oltre Winkler, comunque è già un ottimo punto di partenza.

Ciao.

Conosco le altre trattazioni che potrebbero anche essere sviluppate qui, ma penso che per gli scopi che mi ero proposto il modello di Winkler con coefficiente laterale costante era gia sufficiente.

Grazie. Saluti
« Ogni qualvolta una teoria ti sembra essere l’unica possibile, prendilo come un segno che non hai capito né la teoria né il problema che si intendeva risolvere. »
K.P.

Offline quattropassi

  • Esperto del forum
  • ***
  • Posts: 226
  • Karma: 49
  • Neo - Laureato
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #64 on: 02 July , 2012, 19:58:55 PM »
Conosco le altre trattazioni che potrebbero anche essere sviluppate qui, ma penso che per gli scopi che mi ero proposto il modello di Winkler con coefficiente laterale costante era gia sufficiente.
Grazie. Saluti

Sto provando a smanettare con "scarto", con dimensionamenti dinamici e con... con una UDF raccattata in rete sull' "ottimerrimo"
http://newtonexcelbach.wordpress.com/2012/05/03/using-udfs-continuous-beam-example-3/
Ho provato qualcosa impiegando anche quanto fatto da g.iaria con i grafici a dimensione "comandata".
Beh... sembra interessante...
https://www.box.com/s/29ff8061dd178c5a8a32

A questo punto, afazio, quando ce lo insegni un po' di VBA per autocad?
Da qui (Palatella mi ha praticamente introdotto alle UDF già 8 anni fa) http://digilander.libero.it/carlopala/vb/dvbtutor0.htm sembrerebbe interessante.

Avevo visto cose "ghiotte" in certe tue applicazioni (la macro per il diesgno di pali e sezioni)

Tra l'altro anche questa
http://www.cadlandia.com/topic.asp?TOPIC_ID=13098   http://www.cadlandia.com/cgi-bin/upload/Aniello%20Annunziata/201052812446_ProprietaMassaEstese.zip 
mi sembrava interessante per future/eventuali personalizzazioni.

 :ciau:
« Last Edit: 02 July , 2012, 20:00:37 PM by quattropassi »
* Se ci scambiamo un dollaro, ognuno rimane con un dollaro.
* Se ci scambiano un'informazione, ognuno rimane con due informazioni.

Offline quattropassi

  • Esperto del forum
  • ***
  • Posts: 226
  • Karma: 49
  • Neo - Laureato
Re: VBA- Lezione 2 - Come far interagire foglio-codice
« Reply #65 on: 04 July , 2012, 20:25:25 PM »
Chessò... si potrebbe applicare qualcosa di simile ad un grafico dinamico...
per esempio:
https://www.box.com/s/adc8cf20508c50786f9a

 :byebye:
* Se ci scambiamo un dollaro, ognuno rimane con un dollaro.
* Se ci scambiano un'informazione, ognuno rimane con due informazioni.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24