Condividi:        

Esecuzione istruzioni scritte in celle

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Esecuzione istruzioni scritte in celle

Postdi fabietto1 » 07/09/07 07:56

Buongiorno a tutti
Mi sono appena registrato e vorrei un aiuto da Voi per questo quesito:

E’ possibile scrivere le varie istruzioni (normalmente scritte in Visual basic ), nelle celle di Excell ed eseguirle con dei comandi che richiamano le celle (e quindi il loro contenuto) ad esempio:

nella cella “A1” scrivere: Range("B1").Select
nella cella “A2” scrivere: ActiveCell.FormulaR1C1 = "pippo"
nella cella “A3” scrivere: Range("B2").Select
esiste un’istruzione (da srivere in Visual Basic) che richiami le celle, ed esegua quanto scritto al suo interno ??

grazie.
:) [/b]
fabietto1
Newbie
 
Post: 1
Iscritto il: 07/09/07 07:35

Sponsor
 

Postdi Anthony47 » 08/09/07 00:13

Ciao fabietto e benvenuto nel forum.

Si, si puo' fare.
In linea di massima:
-usi questa istruzione per leggere le righe di codice (esempio la riga 10):
Codice: Seleziona tutto
LineaCod = ThisWorkbook.VBProject.VBComponents("Modulo1").CodeModule.Lines(10, 1)


-questa per cancellare
Codice: Seleziona tutto
ThisWorkbook.VBProject.VBComponents("Modulo1").CodeModule.DeleteLines 10


e questa per inserire le nuove righe:
Codice: Seleziona tutto
ThisWorkbook.VBProject.VBComponents("Modulo1").CodeModule.InsertLines (10), "Nuovo Codice"


Attorno ovviamente va costruito quanto serve per rendere la cosa solida e leggermente meno pericolosa di quanto e' intrinsecamente.
Se hai bisogno di qualche altro spunto, siamo qua.

Domanda: ma eseguire il codice nel vba editor in modalita' Immediata, non e' piu' sicuro?

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19430
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi maxmula » 11/09/07 23:24

Miii....
una macro che si autoprogramma! :O

Questa me la devo studiare bene!

Ciao,
MAX
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: Esecuzione istruzioni scritte in celle

Postdi maxmula » 09/04/09 14:43

Per motivi di (poco) tempo, chiedo lumi direttamente a Sua Signoria Il Moderatore :) :

Molti mesi sono passati dopo questo post, ed ecco che ora sul lavoro mi chiedono di fare proprio questo...
In pratica, ho un grafico generato automaticamente: vorrei fare in modo che la macro che genera il grafico (su un altro foglio di lavoro che non viene distribuito) inserisse nel workbook che lo ospita un piccolo UserForm contenente alcuni pulsanti ed il relativo codice, nonché un pulsante per richiamare questa piccola Console...

Per il codice credo si possa procedere come qui illustrato... ma per userform e controlli?

...naturalmente, nel frattempo, ci studio sopra anch'io!

Grazie in anticipo,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: Esecuzione istruzioni scritte in celle

Postdi Anthony47 » 09/04/09 21:54

Come detto nel vecchio post, modificare le macro ha una sua pericolosita' intrinseca; non mi sembri un neofita, quindi immagino che ci proverai lo stesso.
Per dare qualche spunto vorrei pero' capire meglio che cosa vorresti fare; in particolare, visto che parli di "un foglio di lavoro che non viene distribuito", dove gira il codice "generante" e dove quello "generato", e se tra i problemi c' e' anche come inserire una form da vba (ma perche' la vuoi inserire da vba?).
Per finire: sai che rivolgendoti a una specifica persona rinunci all' aiuto di tanti altri; peggio per te :D

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19430
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Esecuzione istruzioni scritte in celle

Postdi maxmula » 09/04/09 23:01

Allora:
- ho una macro che gira su una macchina sotto il mio controllo: apre dei file .csv e da quelli genera e formatta dei grafici, salvandoli poi in un foglio di lavoro differente (e questo è il foglio "che viene distribuito", ovvero caricato su un file server).

Dal momento che questi grafici contengono molte serie dati (una ventina, in media) e che queste ultime spesso hanno valori molto simili (sono livelli di carico, nel tempo, di un sistema multiprocessore; in condizioni di lavoro normali il carico è uguale per tutti), sorge il problema di capire quante serie sovrapposte ci sono.

Questo lo risolvo tracciando un grafico 3D anziché un semplice grafico a linee 2D.
Il foglio di lavoro che contiene il grafico è protetto, allo scopo di evitare che qualche operazione maldestra da parte di terzi possa portare alla cancellazione di dati: mi piacerebbe, però, che l'utente avesse a disposizione una piccola maschera con un paio di pulsanti per ruotare a destra/sinistra il grafico senza dover togliere la protezione al foglio (per ora non ha password ma non escludo di introdurla) ed accedere al menu Opzioni Grafico... Il massimo del lusso sarebbe anche poter disporre di un ulteriore pulsante, a margine del grafico, che permetta di visualizzare la suddetta maschera.
Questa è la parte di codice che dovrebbe trovarsi nel foglio "generato" e che dovrà girare sulle macchine di chi andrà a scaricare i file per analizzare questi tracciati (e facciamo pure conto che tra loro ci siano alcuni "UtOnti", ottimi tecnici ma se usano Excel... si salvi chi può).

Il tutto non dev'essere fatto necessariamente da VBA solo che, si sa... se hai in mano solo un martello, tutto ti sembrerà un chiodo! :)

Naturalmente sono aperto a qualunque approccio alternativo, compreso l'aiuto di chiunque voglia contribuire! :D

Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: Esecuzione istruzioni scritte in celle

Postdi Anthony47 » 10/04/09 15:38

Il mio suggerimento e' di procedere con un "modello", non nel senso di file .xlt, ma di file di partenza che contiene tutto quello che serve: dati finti, relativi grafici veri, userform, codici per le macro, bottoni e quant' altro.
Poi con una tua macro apri questo file, importi i nuovi dati, adatti l' origine delle serie dei grafici ai nuovi dati, salvi con nuovo nome e distribuisci.
In genere io, in questi casi, come origine delle serie uso degli intervalli nominati (uno per serie), che poi ridimensiono a conclusione dell' importazione; mi sembra piu' semplice che non creare degli intervalli dinamici.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19430
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Esecuzione istruzioni scritte in celle

Postdi maxmula » 10/04/09 23:05

In effetti oggi ragionavo proprio su questo... Credo che tu abbia ragione, alla fine è molto meno complicato partire con tutto già fatto (form + codice).
Purtroppo la macro di generazione elabora gruppi di file ed include più di un grafico per foglio di lavoro (me l'hanno chiesta così...) per cui dovrò fare qualche verifica in più ed inserire in ogni grafico il pulsantino di attivazione della console (la console invece è unica).

Per quello però, ho scoperto, posso usare un pulsante disponibile nella barra "moduli", grazie a questo codice (che dovrò aggiungere alla parte di impaginazione del grafico):
Codice: Seleziona tutto
    ActiveSheet.Buttons.Add(0, 0, 10, 10).Select
    Selection.OnAction = "MOSTRA_CONSOLE"
    Selection.AutoSize = True

dove, ovviamente, MOSTRA_CONSOLE è una macro che si occupa di caricare e visualizzare la userform.
Grazie per le dritte!

MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: Esecuzione istruzioni scritte in celle

Postdi maxmula » 15/05/09 10:16

Chiedo scusa se non mi sono fatto più vivo per molto tempo, comunque... Missione Compiuta.

Ho seguito il metodo consigliatomi anche da Anthony47: Una macro genera i grafici e li deposita in un workbook che altro non è se non un "template" predisposto ad arte con il codice operativo necessario.

Quando l'utente scarica il foglio output dal server e lo apre, una macro associata all'evento Workbook_open() fa una scansione dei grafici presenti e verifica la presenza deii pulsanti su ognuno (nel caso mancassero, li crea): questione di pochi(ssimi) secondi.

Se poi questo foglio viene salvato, alla successiva apertura non c'è nemmeno il tempo d'attesa perchè i pulsanti esistono già.

Grazie ad Anthony47 per... avermi fatto tornare sulla Terra. A volte si architettano soluzioni a dir poco "fantasiose" quando in realtà basterebbe guardare meglio sotto il proprionaso... :)

Inutile dire che ormai ho "creato un mostro": le persone che mi hanno commissionato il lavoro, soddisfatte, mihanno già chiesto di introdurre altre feature.
Ma questa è un'altra storia... e chissà, magari un altro Thread su PC-Facile!

Ciao e di nuovo grazie,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34


Torna a Applicazioni Office Windows


Topic correlati a "Esecuzione istruzioni scritte in celle":


Chi c’è in linea

Visitano il forum: Roby4569 e 15 ospiti