|
Rank: AiutAmico
Iscritto dal : 2/19/2004 Posts: 345
|
Ciao a tutti sto creando una tabella per lavoro su excel dove, vari settori della ditta, con il proprio foglio in rete, devono compilare dei dati e una volta fatto chiudere. Dopodichè io, apro il mio foglio e aggiornando i dati che loro hanno inserito, mi trovo le somme di tutti i settori nel mio foglio. Sin quì tutto bene. Molte persone, nel proprio settore, nel compilare il foglio si dimenticano di mettere gli 0 in alcune caselle. E' possibile mettere un blocco alla chiusura del foglio excel che, se qualcuno non compila tutte le caselle, gli impedisce di chiudere il foglio?
|
|
|
|
|
Rank: AiutAmico
Iscritto dal : 5/4/2003 Posts: 2,845
|
Prova con questo vba (da incollare nel modulo 'ThisWorkBook') Code:Private Sub Workbook_BeforeClose(Cancel As Boolean)
zona = "a1,a2,a3" 'inserire celle da controllare For Each cella In Range(zona) If cella.Value = "" Then MsgBox ("Mancano dati celle" & vbCrLf & "Il file non puo' essere chiuso" & vbCrLf & "Correggere") Cancel = True Exit Sub End If Next End Sub
|
|
Rank: AiutAmico
Iscritto dal : 2/19/2004 Posts: 345
|
lui49 ha scritto:Prova con questo vba (da incollare nel modulo 'ThisWorkBook') Code:Private Sub Workbook_BeforeClose(Cancel As Boolean)
zona = "a1,a2,a3" 'inserire celle da controllare For Each cella In Range(zona) If cella.Value = "" Then MsgBox ("Mancano dati celle" & vbCrLf & "Il file non puo' essere chiuso" & vbCrLf & "Correggere") Cancel = True Exit Sub End If Next End Sub Grazie lui ma mi stai dicendo un qualcosa in arabo in che modo e dove devo inserire questo codice? esempio...seleziono le caselle dove voglio che siano inseriti i numeri prima di chiudere il foglio, e in quale voce devo andare per inserire questo codice che mi hai scritto?
|
|
Rank: AiutAmico
Iscritto dal : 5/4/2003 Posts: 2,845
|
quello che ho scritto serve a controllare che certe caselle non siano, alla chiusura del foglio, vuote.
Apri excel, poi con i tasti 'Alt+F11' apri l'editor di visual basic; doppio clic sulla voce ThisWorkBook nella colonna di sinistra e nel frame di destra incolli il codice che ti ho messo. In corrispondenza della voce 'zona' al posto di a1,a2,a3 devi mettere le coordinate delle caselle che ti interessa controllare. Salva e hai finito.
|
|
Rank: AiutAmico
Iscritto dal : 2/19/2004 Posts: 345
|
lui49 ha scritto:quello che ho scritto serve a controllare che certe caselle non siano, alla chiusura del foglio, vuote.
Apri excel, poi con i tasti 'Alt+F11' apri l'editor di visual basic; doppio clic sulla voce ThisWorkBook nella colonna di sinistra e nel frame di destra incolli il codice che ti ho messo. In corrispondenza della voce 'zona' al posto di a1,a2,a3 devi mettere le coordinate delle caselle che ti interessa controllare. Salva e hai finito. allora Lui... mi sembra di aver fatto tutto come dici...copio e incollo il codice, cambio le coordinate e poi chiudo il riquadro bianco e VB. Dopodichè quando sono su excel e faccio salva mi viene fuori il riquadro grigio con scritto: "Impossbile salvare le caratteristiche seguenti in cartella di lavoro senza macro: progetto VB Per salvare un file con queste caratteristiche fare clic su no quindi selezionare il tipo di file con attivazione macro nell'elenco tipo file. Per continuare a salvare come cartella di lavoro senza macro fare clic su si. "
|
|
Rank: AiutAmico
Iscritto dal : 5/4/2003 Posts: 2,845
|
il tuo excel è 2003 vero?
|
|
Rank: AiutAmico
Iscritto dal : 2/19/2004 Posts: 345
|
lui49 ha scritto: il tuo excel è 2003 vero?
si esatto...è preistorico?
|
|
Rank: AiutAmico
Iscritto dal : 5/4/2003 Posts: 2,845
|
No, è come il mio. Prova a fare 'salva con nome' e assicurati che nel 'tipo di file' sia selezionata 'cartella di lavoro microsoft office excel'.
|
|
Rank: AiutAmico
Iscritto dal : 2/19/2004 Posts: 345
|
lui49 ha scritto:No, è come il mio. Prova a fare 'salva con nome' e assicurati che nel 'tipo di file' sia selezionata 'cartella di lavoro microsoft office excel'. niente da fare, faccio tutto quello che hai scritto, cambio le coordinate e salvo ma quando riapro, cancello i valori dentro le caselle delle coordinate che ho messo e quando vado a chiudere mi chiede se salvare, gli dico si e si chiude senza avvertirmi che devo immettere un valore...boh!
|
|
Rank: AiutAmico
Iscritto dal : 5/4/2003 Posts: 2,845
|
Sembra quasi che tu abbia le macro disabilitate. Clicca su strumenti-->macro-->protezione : metti la spunta su 'medio' e nel flag 'editor attendibili' spunta 'considera ttendibile l0accesso al progetto visual basic'. Chiudi il file e riaprilo.
|
|
Rank: AiutAmico
Iscritto dal : 2/19/2004 Posts: 345
|
lui49 ha scritto:Sembra quasi che tu abbia le macro disabilitate. Clicca su strumenti-->macro-->protezione : metti la spunta su 'medio' e nel flag 'editor attendibili' spunta 'considera ttendibile l0accesso al progetto visual basic'. Chiudi il file e riaprilo. WOW!!! si le macro non erano attivate e oggi ho provato a farlo nel pc di lavoro ed è tutto ok. Ieri avevo provato a casa con excel 2007 e non riuscivo. Una cosa...quando apro il file mi dice "avviso di protezione....e sotto di attivarle o disattivarle". Dato che questi file li aprirebbero varie persone, non vorrei che cliccassero su disattivarle. C'è un modo per non far comparire questa richiesta all'apertura?
|
|
Rank: AiutAmico
Iscritto dal : 5/4/2003 Posts: 2,845
|
Prova mettendo la protezione delle macro su 'bassa'
Inoltre se vuoi che nessuno possa modificare il codice lo puoi proteggere:
Alt+F11-->strumenti-->proprietà di VBAProject-->protezione: spunta 'proteggi progetto dalla visualizzazione' e inserisci una password.
|
|
Rank: AiutAmico
Iscritto dal : 2/19/2004 Posts: 345
|
la password sul codice direi che non mi interessa in quanto, nessuno di quelli che accedono al file, hanno la minima idea di cosa sia VB o come si possa accedere a ciò. L'unica cosa, appunto, che mi preoccupa che se all'apertura del file chiede di attivare o disattivare le macro, almeno la metà cliccano su no ed è per questo che non vorrei che lo chiedesse all'apertura. Domani provo a mettere su basso e vedo che mi dice e ti aggiorno. Ultima cosa...nel mettere le coordinate, dato che devo mettere una serie di caselle, esempio c4, d4, e4 e così via, si può mettere come nelle formule (=somma c4:e4) oppure devo inserire casella per casella?
|
|
Rank: AiutAmico
Iscritto dal : 5/4/2003 Posts: 2,845
|
l'impostazione su 'basso' disattiva di fatto il controllo virus sulle macro e quindi non avrai più scelte da fare all'avvio. Per le celle contigue puoi usare il ':' di separazione del range, per quelle sparse, eventuali, devi fare l'inserimento cella per cella (se tutti i fogli sono uguali poi fai copia-incolla)
es:
zona = "a1,a2,a3,a4" puoi scrivere zona="a1:a4" come puoi scrivere zona="a1:a4,b1"
|
|
Rank: AiutAmico
Iscritto dal : 2/19/2004 Posts: 345
|
lui49 ha scritto:l'impostazione su 'basso' disattiva di fatto il controllo virus sulle macro e quindi non avrai più scelte da fare all'avvio. Per le celle contigue puoi usare il ':' di separazione del range, per quelle sparse, eventuali, devi fare l'inserimento cella per cella (se tutti i fogli sono uguali poi fai copia-incolla)
es:
zona = "a1,a2,a3,a4" puoi scrivere zona="a1:a4" come puoi scrivere zona="a1:a4,b1" ok come speravo, è un pò come le formule. Dove potrei trovare altri codici per VB come quello che mi hai suggerito per eventuali altri comandi per excel?
|
|
Rank: AiutAmico
Iscritto dal : 5/4/2003 Posts: 2,845
|
'google'....e ci sono parecchi forum dedicati ove puoi trovare di tutto e di più.
|
|
Rank: AiutAmico
Iscritto dal : 2/19/2004 Posts: 345
|
lui49 ha scritto:'google'....e ci sono parecchi forum dedicati ove puoi trovare di tutto e di più. ti ringrazio molto LUI, mi hai risolto un piccolo grande problema!!!
|
|
Guest |