Grafico e Useform
Hai un problema con Excel? 
Grafico e Useform
di Francesco (utente non iscritto) data: 22/10/2012 14:50:37
Secondo voi è possibile inserire un grafico all'interno di un userform?
(vorrei creare una finestra che riporti una serie di dati - tale finestra serve a riassumere il lavoro. Facendo ricerche in rete sono riuscito a creare userform e di riportare i valori)
Seconda domanda è possibile inserire oltre al classico tasto chiudi anche un tasto per ridurre a icona?
di Vecchio Frac data: 22/10/2012 15:22:25
Risposta alla prima domanda:
sto cercando una risposta in rete :)
Risposta alla seconda domanda:
Di suo il VBA tratta le form come oggetti molto particolari, diversi dalle normali finestre di Windows. In sostanza le userform sono come controlli, al pari di labels e commandbuttons.
Fare quello che chiedi è possibile, ma occorre un sacco di codice aggiuntivo, un modulo di classe e un pesante ricorso alle API di sistema. Se non è proprio una cosa indispensabile, non è facilmente implementabile nei propri progetti. L'effetto è carino, bisogna vedere se ne vale la pena (il codice da tenere controllato non è poco). Inoltre sono quasi convinto che un file Excel progettato così non gira su Linux nè su Mac e quindi non è portabile.
di Francesco (utente non iscritto) data: 22/10/2012 15:28:13
per la seconda domanda: ero solo curioso e non è indispensabile
di Vecchio Frac data: 22/10/2012 15:33:21
Un'idea potrebbe essere quella di creare un grafico, salvarlo in gif e quindi caricare l'immagine nel form.
Crea il tuo grafico o grafici, come al solito.
Inserisci un form e quindi aggiungi un controllo Image.
Scrivi il codice VBA per salvare il grafico come file GIF, e quindi imposta la proprietà Picture del controllo Image al file GIF. È necessario utilizzare la funzione LoadPicture per fare questo.
Da codice per creare un file GIF (temp.gif) da un grafico (primo oggetto "grafico1" di foglio1).
Set CurrentChart = Sheets("Sheet1").ChartObjects(1).Chart
Fname = ThisWorkbook.Path & " emp.gif"
CurrentChart.Export FileName:=Fname, FilterName:="GIF"
E poi pe rimpostare Image1 che è il controllo immagine sul form basta fare:
Image1.Picture = LoadPicture(Fname)
di Vecchio Frac data: 22/10/2012 15:39:00
E' talmente carina questa idea che l'ho implementata in breve tempo e la allego qui :o)
di Francesco (utente non iscritto) data: 22/10/2012 15:48:14
lo avevo letto anche io ma ero molto distante dal realizzarlo.
grande però !! è esattamente quello che volevo!! ^_^
Che dici mettiamo il "risolto" o aspettiamo che anche altri utenti vedano questa idea che ti ha conquistato? :-D
di Vecchio Frac data: 22/10/2012 16:23:00
LOL,
risolviamola pure. Comunque rimane visibile, trovabile e anche nello storico.
E sì, l'idea mi piace parecchio e penso che troverò il modo di ficcarla nel mio blog :)
Però perché dici che non eri riuscito a copiare l'idea?
Se guardi bene le righe di codice sono davvero minime.
Il grosso del lavoro era realizzare i tre grafichetti (che tra parentesi si possono ampliare, anche a torta etc.).
di Francesco (utente non iscritto) data: 22/10/2012 16:47:24
"lo avevo letto anche io ma ero molto distante dal realizzarlo. " nel senso che per il momento sto perfezzionado altri fremmenti di codice e che il grafico è l'ultima cosa che avrei realizzato. ^_^
(ieri ho
- sistemado errore nelle doppie - prezioso tuo consiglio di usare trim
- riscritto codice somme parziali e totali
- sistemato foglio nota accredito
ora devo definire il il match con 3 poi se tutto funziona aggiungere delle colonne , non so ancora quante ed addattare il codice ai nuovi range.
Poi finalmente graficoooooooooo ^_^ )
di HarryBosch data: 22/10/2012 23:01:55
Veramente carino questo allegato! Non mi era mai passata per la testa l'idea di inserire un grafico in una userform.
Bravi, bella idea e bell'esempio.
di Francesco (utente non iscritto) data: 23/10/2012 16:43:50
Cavolo anche i complimenti di Harry sono commosso
lol
Vuoi Approfondire?