EXCEL - Realizzare programmi con grafica - si può fare facilmente

Betoniera

Super moderatore
Staff Forum
Messaggi
657
Ciao a tutti

Questo post è dedicato a paolo.scarparo e a quanti sono appassionati di programmazione.

Per svolgere l'attività di calcolatore occorre necessariamente costruirsi dei fogli di calcolo per le verifiche più spicciole.
Excel è l'ideale per queste cose.
Non c'è paragone tra la semplicità di Excel e la complessità di un programma tradizionale fatto, ad esempio, in VBNET.
Ma ho sempre utilizzato EXCEL per la formazione di fogli semplici, privi di grafica, perchè, pensavo, che fosse difficile gestire la grafica con esso.
A mio avviso, la grafica è indispensabile per un controllo visivo e immediato dei dati immessi.
Ad esempio per una semplice verifica di una sezione in c.a., un conto è vedere un foglio di calcolo con solo indicazioni numeriche di B, H, Af1, Af2, ecc, un'altra cosa è vedere disegnata la sezione in scala con l'indicazione dell'asse neutro le tensioni: è un'altra qualità di programmi.
Pensavo che in Excel non si potesse fare o che, comunque, era molto complesso.
E, invece, no. Ho trovato il metodo ed è piuttosto semplice
Qui sotto vedete un foglio di calcolo che serve per verificare un giunto di acciaio fatto con piatti.
Ebbene ho sperimentato il disegno grafico del giunto e la visualizzazione delle tensioni e questo è il risultato

DisegnoExcel.jpg

E' evidente che una programmazione con grafica è tutta un'altra cosa rispetto al foglio fatto di soli numeri.
Sono molto più leggibili le tensioni sui bulloni nella loro posizione grafica.
A quel risultato si arriva in maniera piuttosto semplice utilizzando le forme.
In pratica servono pochissime forme per fare quel disegno: linea, polilinea, ovale, casella di testo
Più avanti, se interessa, posto i frammenti di codice VBA per disegnare quegli elementi.
Il resto delle istruzioni non sono altro che lettura dei dati e riduzione in scala dei valori.
Ciao, seguiranno, se interessa, le istruzioni per disegnare quelle forme
 
Ultima modifica:
Ciao.
A volte poi basta veramente poco per ottenere i risultati voluti.
Nella seguente figura un utilizzo particolare dei grafici per la visualizzazione degli assi principali e del baricentro di una trave precompressa non simmetrica:
2021-12-23_074345.jpg
 
Ciao Trefolo66
Quello dell'utilizzo del grafico l'ho visto usare spesso.
Non è male, ma ha delle possibilità limitate.
Non ho visto, invece, esempi con l'utilizzo delle shape che rappresenta un metodo più generico di disegnare.
Ho fatto le prove col foglio sopra descritto e funziona perfettamente e con poche chiare istruzioni.
I vantaggi rispetto al VBNET sono enormi:
- non bisogna compilare e installare il programma.
- Le istruzioni VBA (excel) sono simili, ma più semplici rispetto al VBNET (Visual Basic).
- non bisogna scrivere le istruzioni di output, si può usare il copia-incolla
- la manutenzione e/o modifica del programma è facile senza richiedere programmi e compilazione.
Ho scoperto questa possibilità molto tardi. Se l'avessi scoperta prima avrei risparmiato molto tempo che ho speso nella programmazione VBNET.
Ritengo che questo argomento interessi molti colleghi, per questo appena ho tempo, posterò qui sotto le istruzioni per disegnare quelle shape che rappresentano il punto di partenza per fare i primi esperimenti.
Ciao.
 
Ultima modifica:
Ciao Betoniera.
Ovviamente hai ragione tu. L'utilità dei grafici è molto limitata ma sicuramente più semplice qualora serva solo per qualcosa di non molto complesso.
In altri casi è sicuramente più utile l'utilizzo del VBA.
In realtà non mi sono mai particolarmente spinto in questo senso, preferendo utilizzare VBA e/o VBNET per disegnare in AutoCAD e, eventualmente, importare poi in Excel quanto disegnato.
Altra funzione molto utile del VBA è quella di poter richiamare altri fogli Excel o programmi creati appositamente per l'esecuzione di calcoli ripetitivi (anche in background).
Ciao.
 
Ecco nel dettaglio le istruzioni per fare disegni nei fogli di Excel
Le forme usate per realizzare il disegno sopra sono: plilinea, ovale, linea e Textbox.
Il disegno elementare che si vuole produrre è il seguente
Prova Disegno.jpg

Le istruzioni da associare al primo pulsante sono le seguenti.
Sorprende la semplicità delle istruzioni.
Le coordinate indicate sono i pixel del video quindi, per disegnare in scala, basterà applicare dei fattori moltiplicativi di scala alle misure reali.

Istruzioni disegno forme.jpg

Occorre anche una procedura per cancellare le forme parchè, altrimenti, si accumulano ad ogni click.
Le istruzioni per cancellare le forme sono queste

Cancella forme.jpg

Le istruzioni sono selettive in modo da cancellare solo le forme che interessano.
In conclusione si può dire che le istruzioni per disegnare in Excel sono straordinariamente semplici.
Eppure non ho visto esempi esplicativi al riguardo.
Ma l'importante è avere individuato la strada per migliorare i nostri fogli di calcolo.
Ciao a tutti e Buon Natale.

Aggiungo queste ulteriori informazioni perchè alcuni utenti hanno segnalato che la procedura di cancellazione non cancella alcune forme.

Le istruzioni indicate per la cancellazione delle forme sono state scritte in Excel 2007. Non funzionano in Excel 2016 o superiore perchè sono stati cambiati i nomi delle forme.
Allora conviene integrare quelle istruzioni con i nomi delle forme riconosciute da Excel 2016 in modo che funzionino su tutte e due le versioni.
Se si utilizza qualche altra forma di nome diverso (ad esempio "NuovaForma") basterà aggiungere la seguente istruzione

If Lef(a, 6) = "NuovaF" Then sh.Delete

Ciao a tutti

Procedura.jpg
I
 
Ultima modifica:
Ottimo e davvero semplice!

Per medio- piccole applicazioni nel nostro campo EXCEL è insuperabile.
Tutti hanno Excel e se vuoi distribuire una applicazione non devi pretendere
o sperare che l'utente installi nulla; anche se si tratti di un semplice .exe.
Psicologicamente fa la differenza.
 
Molto interessante!
C'è un modo per disegnare all'interno di uno spazio preciso o comunque ritrovare (con un nome per esempio) le forme disegnate? In modo da cancellare solo quelle
 
Il disegno è composto da forme sovrapposte e numerate da Excel (non è una immagine di pixel)
Possono essere modificate o cancellate manualmente una ad una.
Alcuni accorgimenti da programmatore possono aiutare a disegnare o a spostare l'immagine in qualsiasi punto.
Anzichè disegnare con le coordinate assolute (pixel) del foglio, è opportuno disegnare rispetto ad un punto x0, y0 che rappresenta il punto di appoggio del disegno.
Esempio di sezione spostabile : sezione di 60*100, Punto di appoggio x0=100, y0=100
Nel programma modificare le istruzioni delle coordinate della polilinea in questo modo:

X0=100 : Y0=100 'punto di inserimento figura
p(1, 1) = x0 : p(1, 2) = y0
p(2, 1) = x0 : p(2, 2) = y0 + 100
p(3, 1) = x0 + 60 : p(3, 2) = y0 + 100
p(4, 1) = x0 + 60 : p(4, 2) = y0
p(5, 1) = p(1, 1): p(5, 2) = p(1, 2) 'Ultimo punto = primo

Ora Tutta la figura si appoggia a x0, y0. Se si modifica quelle coordinate la figura verrà disegnata nella nuova posizione.
In questo modo si porta la figura dove si vuole senza modificare le istruzioni di disegno.
E' facile ed anche logico. Basta sperimentare un pò e si arriva subito ad una buona e proficua programmazione.
Ciao
 
Ultima modifica:
Indietro
Top