Forum di Excel e VBA, per condividere esperienze e risolvere problemi su: Excel, Word, Access, Power Point, Microsoft Office, macro, Visual Basic e Visual Studio.
il controllo Calendar di ijk (utente non iscritto) data: 03/03/2013 19:52:16
salve a tutti )
allora: ho provato ad aggiungere in un user form il controllo aggiuntivo Calendar 11.0 (controllo calendario). Ed è molto utile per quello che sto facendo ma.. mi chiedo cosa succederà se distribuirò il file contenente questo controllo ad una cinquantina di persone... Mi spiego, la mia preoccupazione è: visto che, a quanto ho capito, è un componente Access, pensate che ci potrebbero essere problemi di esecuzione? nel senso che magari versioni light o student di office non 'riconoscano' questo controllo? ho trovato poco in rete. ciao e grazie
di Vecchio Frac data: 03/03/2013 20:42:38
Non dovresti avere particolari problemi.
MSCAL.OCX è normalmente installato quando si installa Microsoft Office Professional o quando si installa solo Access. Se nel pc non si dispone di una copia del file è possibile scaricare e installare una copia di MSCal.ocx reperendola in rete per la versione corretta dell'Office in uso. Il file deve essere copiato nella posizione corretta sul computer e deve essere "registrato" con regsvr32.exe.
Quando distribuisci il file puoi "allegare" anche MSCal.ocx con le dovute istruzioni in caso di fallimento nell'esecuzione.
di ijk (utente non iscritto) data: 03/03/2013 21:29:28
ciao Vecchio Frac, grazie per la risposta. ma nel frattempo ho trovato qualcosa sul sito di supporto della microsoft nella cartella kb/150774 e mi sa che per me è la soluzione migliore! qualche riga di codice che crea un calendario facilmente adattabile al mio caso! ancora grazie e ciao
di ijk (utente non iscritto) data: 07/03/2013 14:49:09
mi sa che una cosa del genere mi era già successa con un altro controllo... allora, i fatti:
ho usato il 'controllo Calendario 11.0' per provarlo; poi ho eliminato il form e ho usato una macro indipendente che non usa il controllo Calendario di excel. Tuttavia, lanciando il foglio in pc diverso dal mio appaiono segnalazioni di errore. Prima di inserire il controllo (che,ripeto, ho eliminato) non succedeva. qualcuno ha qualche suggerimento? grazie in anticipo
di ijk (utente non iscritto) data: 07/03/2013 14:56:42
mi sa che una cosa del genere mi era già successa con un altro controllo... allora, i fatti:
ho usato il 'controllo Calendario 11.0' per provarlo; poi ho eliminato il form e ho usato una macro indipendente che non usa il controllo Calendario di excel. Tuttavia, lanciando il foglio in pc diverso dal mio appaiono segnalazioni di errore. Prima di inserire il controllo (che,ripeto, ho eliminato) non succedeva. qualcuno ha qualche suggerimento? grazie in anticipo
di ijk (utente non iscritto) data: 07/03/2013 14:58:45
ho allegato il file...
di ijk (utente non iscritto) data: 09/03/2013 15:26:06
giusto per chiudere questo post e dare un (modestissimo e infinitesimo) contributo: quando si aggiunge un 'controllo aggiuntivo' nella casella degli strumenti dell'editor di visual basic e si prova a utilizzarlo, anche se poi lo si elimina, nel file excel resterà una traccia dell'installazione del componente. e non so come si possa eliminare... Questo crea problemi quando si tenta di eseguire la cartella excel con una versione in cui non è installato il controllo. io ho capito così, anche perché sono ritornato ad un salvataggio precedente il giorno in cui ho effettuato la prova, ho applicato le stesse modifiche ed ora è ok. grazie a tutti
di Vecchio Frac data: 09/03/2013 16:48:52
Dunque ijk,
ho scaricato il tuo file e ti faccio i complimenti perchè è accurato nonostante la complessità.
Per la cronaca, a me funziona tutto senza nessun problema :)
di ijk (utente non iscritto) data: 09/03/2013 20:23:37
grazie vecchio frac! grazie! ma il codice va ancora ottimizzato. ho studiato programmazione da giovane... poi ho fatto altro, ma la 'passione' mi è rimasta :) ci sentiamo e grazie per il servizio che fornite, ciao :)
di Vecchio Frac data: 09/03/2013 22:23:35
E' scritto bene anche se in alcuni passi è un po' ridondante... Ottimizzato, forse in alcuni punti lo andrebbe sicuramente, anche se poi (lo dico spesso) è naturalmente questione di stile di programmazione... ognuno ha il proprio
Ti invito a dichiarare sempre il tipo delle variabili... e a non dichiarare una variabile con lo stesso nome di un metodo (CutCopyMode). Anche l'indentazione ha la sua importanza ^_^
Ok, retaggi di QBasic sicuramente... ma ne è passata di acqua :P
Comunque un lavoro veramente ben fatto e funzionale.
di ijk (utente non iscritto) data: 10/03/2013 11:51:16
vecchio frac.. mi fai arrossire ahah grazie ancora, detto da te è un complimento veramente grande! e poi..mi hai fatto sognare.. qbasic!!! l'avevo rimosso questo questo termine! ahahah quanto tempo è passato!!! si, i basic 'me li sono fatti tutti' :) dal comm64 in poi (anche se ho iniziato con cobol..). Terrò ovviamente conto dei tuoi utili suggerimenti quando riguarderò il codice. ridondante si, certo, da qualche parte devo 'tagliare' e anche dichiarare le variabili. Non mi ero accorto invece della storia del cutcopymode.. controllerò accuratamente! devo dire che la programmazione a oggetti (per chi ha iniziato con la strutturata..) è davvero 'entusiasmante' :D ma mi sento molto impreparato su tante cose... ti saluto cordialmente e ti auguro una serena domenica, ciao
di isy (utente non iscritto) data: 10/03/2013 13:02:19
Ciao
Citazione di Vecchio Frack:
ho scaricato il tuo file e ti faccio i complimenti perchè è accurato nonostante la complessità.
Per la cronaca, a me funziona tutto senza nessun problema :)
Ho un paio di domande da fare come puoi giudicare un codice protetto?
Poi ho eseguito il file e mi dava errore... Non riconosceva Sh in Workbook_Open
La causa era che utilizzavo troppi riferimenti vba di cui uno non presente.
Private Sub Workbook_Open()
For Each sh In ThisWorkbook.Sheets
sh.ScrollArea = "A1:AZ50"
Next sh
...
di Vecchio Frac data: 10/03/2013 13:36:03
@isy
Avviando il file in Excel 2007 anche a me dà errore, nel "modulo nascosto ThisWorkbook". Invece con la versione 2003 nessun problema. Devo ancora verificare perchè, visto che sarebbe utile la compatibilità... almeno in avanti ^_^; ma probabilmente come dici tu ci sono riferimenti a librerie non referenziate.
E siccome ti sei accorto che ho dato un giudizio su un progetto dove il codice VBA è adeguatamente protetto... qui ti posso dire soltanto che ho esaminato davvero il codice. Purtroppo almeno fino alla versione 2003 la protezione nei prodotti Office non è adeguata. Le cose sono migliorate dalla 2007 in avanti (mi risulta che è stato adottato un algoritmo tipo RSA invece che una semplice text comparison).
Comunque il progetto di ijk è sufficientemente complesso da meritare almeno questa rudimentale forma di protezione... non lo salva dagli smanettoni come me ma per chi non ha tempo da perdere è un valido deterrente :)
di isy (utente non iscritto) data: 10/03/2013 14:11:36
Ciao
Citazione: Avviando il file in Excel 2007 anche a me dà errore, nel "modulo nascosto ThisWorkbook".
Proprio così, le prove le ho state fatte con excel 2003
Ho allegato un'immagine dei riferimenti mancanti.
Mentre se utilizzo il file nella versione Excel 2013 nelle voci mancanti va aggiunto il controllo Microsoft Calendar.
di ijk (utente non iscritto) data: 10/03/2013 14:24:54
...insomma isy, il codice si può proteggere ma...si può anche dimenticare la password! e il quel caso, che fai? riscrivi tutto da capo? ...insomma, l'ho protetto non perché avevo paura che qualcuno lo leggesse, ma per due motivi:
1.mi vergogno un po' di far vedere codice scritto 'in brutta copia' :) di solito alla fine stampo e ottimizzo..e poi lo rendo pubblico ma senza mai eliminare la protezione.
2.ho timore che fra le persone a cui lo do ci possa essere qualche smanettone (ma Non parlo di Smanettoni con la S maiuscola come vecchio frac! :D ) che, dando un'occhiata al codice, danneggi inavvertitamente il codice e quindi i dati immessi, e parliamo di mesi di dati..!
Tornando all'interessante discorso della compatibilità: vecchio frac, pronunci parole sante! 'compatibilità almeno in avanti'!!! Posso dire di aver una buona esperienza nella 'distribuzione di file excel a chiunque' e ho imparato, a mie spese, diverse cose sulla compatibilità e sono fortemente interessato a parlarne, qui o in un altro post più specifico, che ne dici vecchio frac? ..anche se sono sicuro che in questo forum ci siano molti post che trattano l'argomento.
Aggiungo due osservazioni su questo tema che, ripeto, provengono dalla mia esperienza (da circa 10 anni distribuisco in rete un file excel per fare l'orario..) e non dalle mia conoscenza di VBA che è parziale...
osservazione 1: mai aggiungere controlli aggiuntivi nella casella strumenti dell'editor di VBA! neanche per provarli e poi cancellarli!! dopo che ho fatto questo, per provare il Controllo Calendario 11.0, i miei :) ..'betatester' (devi averne se pensi di distribuire un file a una 50ina di persone!) mi hanno detto che il file dava errori in apertura, sia con 2003 che con 2007. Non a tutti ma alla maggior parte! meno con 2003 che con 2007 o 2010. ho risolto recuperando una versione salvata prima della fatidica prova. ho aggiornato il file e l'errore è scomparso (vecchio frac se vuoi vederlo dimmelo..). questi sono i fatti ma non chiedetemi perché :) Comunque mi era già successa una cosa del genere molti anni fa: avevo aggiunto il controllo RefEdit, stessa storia! immagino che dipenda da quello che hai scritto tu vecchio frac ovvero: 'riferimenti a librerie non referenziate'
osservazione 2:la compatibilità, anche in avanti!, è veramente difficile da conservare per quanto riguarda la grafica! e non ho mai pensato di affrontare la soluzione del problema...
di ijk (utente non iscritto) data: 10/03/2013 14:27:38
ho letto ora isy, quindi il problema sarebbe: come eliminare le 'tracce' dell'istallazione di un controllo, o no?