Condividi:        

Bloccare automaticamente il valore scritto in una cella

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

Bloccare automaticamente il valore scritto in una cella

Postdi marcoraiu » 19/04/11 20:08

Ciao sapete se si può Bloccare automaticamente il valore scritto in una cella di excel ?esempio:
io scrivo in una cella "11:40",vorrei che nel momemto in cui do invio ,immediatamente la cella non si possa modificare.
Grazie
marcoraiu
Utente Junior
 
Post: 73
Iscritto il: 30/03/09 16:17

Sponsor
 

Re: Bloccare automaticamente il valore scritto in una cella

Postdi PcBase » 19/04/11 21:50

Ciao

Puoi specificare meglio: immediatamente la cella non si possa modificare.
Il foglio è protetto?
Altre eventuali considerazioni...
Windows xp + Office 2003 Ita
Windows8 Office 2013
PcBase
Utente Senior
 
Post: 143
Iscritto il: 24/02/11 23:26

Re: Bloccare automaticamente il valore scritto in una cella

Postdi Flash30005 » 19/04/11 21:53

Ehmmm
si può e non si può
se inetndi che se l'utente sei tu lo puoi fare e blocchi e un altro utente prova a modificare quanto da te scritto si può fare
si può fare anche se precedentemente la cella era vuota e sei tu a modificare e poi non hai più la possibilità di modificarla tu stesso
inoltre occorrerebbe sapere se si tratta di una sola cella o di un range di celle
insomma mancano molte specifiche
fai sapere
ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Bloccare automaticamente il valore scritto in una cella

Postdi Anthony47 » 19/04/11 21:58

Per ampliare le risposte interlocutorie: rispondero' solo se mi prometti che non mi chiederai come fare a modificare o cancellare una cella gia' compilata....
:D :D
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Bloccare automaticamente il valore scritto in una cella

Postdi marcoraiu » 19/04/11 22:10

no il foglio non è protetto ,intendo dire io metto un orario e salvo ,metto altri orari (sempre nello stesso foglio ,sono entrate e uscite del personale)e salvo ,quello che vorrei e che l'orario che io ho digitato non possa essere modificato,in quanto il file è utilizzato da più persone 24 ore su 24, ma allo stesso tempo il mio collega deve poter mettere altri orari in altre celle sulla stessa riga.
Immagine

Ciao e grazie PcBAse
marcoraiu
Utente Junior
 
Post: 73
Iscritto il: 30/03/09 16:17

Re: Bloccare automaticamente il valore scritto in una cella

Postdi marcoraiu » 19/04/11 22:13

marcoraiu
Utente Junior
 
Post: 73
Iscritto il: 30/03/09 16:17

Re: Bloccare automaticamente il valore scritto in una cella

Postdi PcBase » 19/04/11 23:22

Ciao

Puoi provare con vedi allegato:
http://www.sendspace.com/file/576jzb
Windows xp + Office 2003 Ita
Windows8 Office 2013
PcBase
Utente Senior
 
Post: 143
Iscritto il: 24/02/11 23:26

Re: Bloccare automaticamente il valore scritto in una cella

Postdi Anthony47 » 20/04/11 01:21

In alternativa alla soluzione di PcBase dovrebbe andare bene anche questo codice:
Codice: Seleziona tutto
Public Preced As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
CheckArea = "D1:D40"    '<<< L' area da bloccare
If Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Preced Then
    Application.Undo
    MsgBox ("Vietato modificare la cella " & Target.Address)
End If
Fines:
Application.EnableEvents = True
'Target.Offset(1, 0).Select  ' Opzionale
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
On Error Resume Next
If IsError(Target.Value) Then
    Preced = False
    Else
    If Target.Value <> 0 Then Preced = True Else Preced = False
End If
End Sub

Nell' istruzione marcata <<< dovrai indicare l' area che vorresti proteggere.

Va inserito tutto nel "modulo di codice del foglio che contiene i dati: tasto dx sul tab col nome del foglio, scegli Visualizza codice, copia il codice e incollalo nel frame di dx; la riga Public deve essere la prima in testa.

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

Re: Bloccare automaticamente il valore scritto in una cella

Postdi marcoraiu » 20/04/11 08:44

Non ho più parole ,il miglior forum .
Grazie PcBase il tuo file lo tengo è molto utile complimenti.
Anthony che dire,per il lavoro userò il tuo file , il codice che hai creato è perfetto per le mie esigenze,solo un ultima cosa ,x evitare che qualcuno modifichi il codice ,si può bloccare l'accesso al visual basic.
Marco
marcoraiu
Utente Junior
 
Post: 73
Iscritto il: 30/03/09 16:17

Re: Bloccare automaticamente il valore scritto in una cella

Postdi PcBase » 20/04/11 09:28

Ciao

Puoi inserire una protezione nel codice Macro mediante password.
In Excel 2003 i comandi sono:

Alt+F11
Strumenti
Proprietà di VbaProject..
Protezione

Qui inserisci la password

Buon lavoro!
Windows xp + Office 2003 Ita
Windows8 Office 2013
PcBase
Utente Senior
 
Post: 143
Iscritto il: 24/02/11 23:26

Re: Bloccare automaticamente il valore scritto in una cella

Postdi marcoraiu » 20/04/11 11:32

Perfetto l'ho bloccato.
Grazie PcBase
Ciao .
Marco
marcoraiu
Utente Junior
 
Post: 73
Iscritto il: 30/03/09 16:17

Re: Bloccare automaticamente il valore scritto in una cella

Postdi ricky53 » 20/04/11 11:36

Ciao,
ricorda che le password in Office vanno utilizzate solo per evitare cancellazioni/modifiche accidentali e non garantiscono assolutamente da tentativi non autorizzati di accedere al codice, infatti, basta un minimo e si scopre/rimuove la passoword.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Bloccare automaticamente il valore scritto in una cella

Postdi marcoraiu » 20/04/11 11:55

SI ,è x evitare che qualcuno ci si metta a "giocare"
marcoraiu
Utente Junior
 
Post: 73
Iscritto il: 30/03/09 16:17

Re: Bloccare automaticamente il valore scritto in una cella

Postdi marcoraiu » 20/04/11 12:47

Anthony ,ho riscontrato questo problema :scrivo il valore e va bene ,provo a scrivergli sopra ,e mi dice cella protetta,provo una seconda volta e posso modficarlo.
Ciao
Marco
marcoraiu
Utente Junior
 
Post: 73
Iscritto il: 30/03/09 16:17

Re: Bloccare automaticamente il valore scritto in una cella

Postdi Anthony47 » 20/04/11 14:10

A me il comportamento e' sempre corretto.
Hai altre macro nel file? La sequenza e' cosi' come l' hai scritta o in mezzo ci sono altre operazioni? Puoi descrivere passo passo cosa fai? Hai adeguato l' istruzione "<<<" ai tuoi dati?

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

Re: Bloccare automaticamente il valore scritto in una cella

Postdi Anthony47 » 20/04/11 14:15

ERRORE.
Mi sono accorto che l' istruzione che davo per "opzionale" nella macro (Target.Offset(1, 0).Select) in realta' e' necessaria; se la disabilito sul mio foglio il comportamento e' come hai detto tu.

Se non vuoi spostare il cursore, simulando una vera digitazione, dimmelo che risolviamo in altro modo.

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

Re: Bloccare automaticamente il valore scritto in una cella

Postdi marcoraiu » 20/04/11 15:00

se puoi è meglio fare in altro modo ,è più sicuro.
Ciao
marcoraiu
Utente Junior
 
Post: 73
Iscritto il: 30/03/09 16:17

Re: Bloccare automaticamente il valore scritto in una cella

Postdi Anthony47 » 20/04/11 22:32

Hum...
Ho avuto una serie di comportamenti inattesi sull' evento Worksheet_SelectionChange, in particolare eventi innescati anche in presenza di Application.EnableEvents = False. Alla fine ho optato per una "logica" realizzata in vba per annullare l' effetto.

La penultima versione della macro e' questa:
Codice: Seleziona tutto
Public Preced As Boolean, ACelAd As String
Private Sub Worksheet_Change(ByVal Target As Range)
CheckArea = "D1:D40"    '<< L' area da bloccare
If Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
'ACelAd = ActiveCell.Range("A1").Address
If Preced Then
Application.EnableEvents = False
    Application.Undo:    ACelAd = ActiveCell.Range("A1").Address
    MsgBox ("Vietato modificare la cella " & Target.Address)
    Application.EnableEvents = True
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If ActiveCell.Address = ACelAd Then Exit Sub
On Error Resume Next
If IsError(Target.Value) Then
    Preced = False
    Else
    If Target.Value <> 0 Then Preced = True Else Preced = False
aaa = Target.Address
End If
End Sub

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

Re: Bloccare automaticamente il valore scritto in una cella

Postdi marcoraiu » 20/04/11 23:00

Adesso provo,intanto grazie x la disponibilità,non tutti lo farebbero.
Ciao
marcoraiu
Utente Junior
 
Post: 73
Iscritto il: 30/03/09 16:17

Re: Bloccare automaticamente il valore scritto in una cella

Postdi marcoraiu » 22/04/11 18:11

Ciao Anthony ho provato a lungo il programma ,ho trovato questo problema:
1)clicco col mouse in una cella vuota fuori dalla area di lavoro,
2)clicco sulla cella bloccata e cambio il valore,
3)clicco di nuovo su una (o anche sulla stessa)vuota,mi dice cella protetta
4)clicco di nuovo sulla cella vuota
5)clicco di nuovo sulla stessa cella protetta e mi permette di cambiare il valore .
Con questa sequenza le celle già protette si possono cambiare .
Ciao e grazie
Marco





Buona Pasqua a tutto il Forum
marcoraiu
Utente Junior
 
Post: 73
Iscritto il: 30/03/09 16:17

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Bloccare automaticamente il valore scritto in una cella":

BTp Valore
Autore: MarioLombardi
Forum: Forum off-topic
Risposte: 2

Chi c’è in linea

Visitano il forum: Nessuno e 52 ospiti