Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Protezione foglio e permesso aggiunta nuova riga

Ultimo Aggiornamento: 30/11/2013 22:20
Post: 4
Registrato il: 26/11/2013
Città: IMPERIA
Età: 51
Utente Junior
excel 2011 per MAC
OFFLINE
29/11/2013 12:07

Ciao,
allego un file. Ciò che vorrei fare é proteggere il foglio di lavoro DataBase in modo che non si possano modificare i dati una volta inseriti, quindi permettere soltanto di aggiungere una nuova riga posizionandosi sull'ultima riga e colonna valorizzata e premendo tab (come avviene ora). Se metto la protezione mi fa aggiungere la riga ma non prende i valori della tabella come avviene ora. In sostanza vorrei permettere l'aggiunta di una nuova riga ma non la modifica dei dati del DataBase. Si potrebbe anche fare con un pulsante ad hoc tipo aggiungi nuovo record, ma non so come fare. Vorrei infine prevedere un pulsante che premuto apra il foglio Stampa.
Ringrazio chi mi sarà di aiuto.
Matteo

Excel 2011 per MAC
Matteo
********************
excel 2007
Post: 4.398
Registrato il: 01/05/2006
Utente Master
2010
OFFLINE
29/11/2013 18:51

Ciao Mateo: ti allego esempio dove ho aggiunto un foglio di appoggio denominato "Inserimento" in cui vai ad inserire i dati nuovi da riportare al foglio "DataBase" protetto.

Il codice utilizzato ed associato ai vari pulsanti è il seguente:

Sub NuovoInserimento()
Sheets("Inserimento").Select
End Sub

Sub FoglioStampa()
Sheets("Stampa").Select
End Sub

Sub SalvaInserimento()
xRiga = Sheets("DataBase").Cells(Rows.Count, 1).End(xlUp).Row + 1
Sheets("DataBase").Unprotect "Pippo"
Range("A2:L2").Select
Selection.Copy
Sheets("DataBase").Select
Range("A" & xRiga).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Inserimento").Select
Selection.ClearContents
Range("A2").Select
Sheets("DataBase").Protect "Pippo"
End Sub

Sub FoglioDataBase()
Sheets("DataBase").Select
End Sub

... la password utilizzata al Foglio "DataBase" è "Pippo", cambiala in quella che vuoi nelle righe:

Sheets("DataBase").Unprotect "Pippo"
Sheets("DataBase").Protect "Pippo"

[SM=x423053]
Ciao
Antonio
(Versione excel:2003/2010)
Post: 4
Registrato il: 26/11/2013
Città: IMPERIA
Età: 51
Utente Junior
excel 2011 per MAC
OFFLINE
29/11/2013 19:50

Ciao Antonio.
Grazie per l'aiuto. Se ho ben inteso (tanto per provare a capire) crei un nuovo foglio dove andare ad inserire la nuova riga e, bloccando e proteggendo il DataBase dovrebbe essere impossibile modificare i dati una volta salvati. Il problema é che nel foglio Inserimento non mi propone il numero di statino (progressivo), la data, il fondo cassa iniziale e il fondo cassa finale. Inoltre le celle struttura e operatore non hanno più la convalida. In effetti anche con la protezione che hai inserito tu nel foglio DataBase perde le caratteristiche che ho detto sopra, ma se tolgo la protezione e mi posizione in L14 e premo il tasto Tab, allora nella nuova riga tutto funziona. In sostanza nel nuovo inserimento non vorrei perdere le caratteristiche del foglio DataBase in cui alcuni data sono automatici (il fondo cassa iniziale e finale é calcolato così come il numero di statino é progressivo e la data del giorno).
Spero di essere stato chiaro.
Grazie ancora
Matteo
********************
excel 2007
Post: 4.399
Registrato il: 01/05/2006
Utente Master
2010
OFFLINE
29/11/2013 20:00

Ciao Matteo; nelle prove che ho fatto io sull'esempio, la formattazione rimane; per il numero di statino se è progressivo si può rimediare; anche per la date se è quella odierna; per il fondo cassa iniziale se mi spieghi da dove ricavarlo forse si trova soluzione.
Ciao
Antonio
(Versione excel:2003/2010)
Post: 5
Registrato il: 26/11/2013
Città: IMPERIA
Età: 51
Utente Junior
excel 2011 per MAC
OFFLINE
29/11/2013 20:08

Ciao Antonio,
il fondo cassa iniziale é uguale a quello finale della riga precedente.
Quindi inserendo una nuova riga dovrebbe essere 800.
Grazie
Matteo
********************
excel 2007
Post: 4.400
Registrato il: 01/05/2006
Utente Master
2010
OFFLINE
29/11/2013 20:32

Ciao Matteo; vedi l'allegato che ho modificato aggiungendo la seguente macro al foglio Inserimento":

Private Sub Worksheet_Activate()
UltimoStatino = Application.WorksheetFunction.Max(Sheets("DataBase").Range("A2:A5000"))
x = Worksheets("DataBase").Range("L65536").End(xlUp).Row
FondoCassa = Sheets("DataBase").Cells(x, 12).Value
Range("A2").Value = UltimoStatino + 1
Range("D2") = Date
Range("E2") = FondoCassa
End Sub

in pratica ogni volta che attivi il foglio "Inserimento ti inserisce il progressivo dello statino, la data del giorno in corso e il fondo cassa residuo.

[SM=x423053]
Ciao
Antonio
(Versione excel:2003/2010)
Post: 6
Registrato il: 26/11/2013
Città: IMPERIA
Età: 51
Utente Junior
excel 2011 per MAC
OFFLINE
30/11/2013 12:19

Ciao Antonio,
grazie del supporto. E' da ieri che provo a fare in pò di cose... certe sono riuscito, altre no.
In particolare vorrei agire praticamente solo sul Foglio Inserimento come interfaccia e nascondere tutti gli altri fogli. Vorrei tuttavia compiere ancora queste modifiche che non riesco a fare:
Foglio Inserimento:
* colonna struttura permettere inserimento solo maiuscolo (o trasformare in maiuscolo se si digita minuscolo)
*struttura e operatore devono essere valorizzati per forza. A questo proposito ho trovato una tua risposta che avevi fornito giovedì 12 maggio 2011 18:48. Funziona in una cella, ma dovendone valorizzare due qualcosa non funziona (ho sicuramente utilizzato male quanto tu avevi indicato per una sola cella :-)
* descrizione uscite solo inserimento carattere maiuscolo come struttura
* fondo cassa dovrebbe essere: fondo cassa iniziale + cassa + scontrini - uscite - vers in cassa generale - vers in banca. Se metto la formula poi la perdo quando faccio nuovo inserimento.
* ho messi i pulsanti NUOVO INSERIMENTO e STAMPA nel foglio Inserimento perché vorrei lasciare in visione solo questo. Non so associare il codice che avevi messo in DataBase perché il NUOVO INSERIMENTO faccia le stesse cose del pulsante di DataBase, ma nel foglio Inserimento.
Grazie [SM=x423028]




Matteo
********************
excel 2007
Post: 4.402
Registrato il: 01/05/2006
Utente Master
2010
OFFLINE
30/11/2013 19:57

Ciao Matteo; il codice che ti ho messo io (per lo più utilizzando il registratore di macro) a nascondere i fogli poi non gira più; da quello che mi pare a te occorre, sarebbe meglio utilizzare direttamente una userform e lasciare non visibile intera cartella, inoltre viene anche più semplice gestire inserimento campi obbligatori e testo maiuscolo.
Ovviamente il lavoro diventa più laborioso e lungo e se come immagino, sei a digiuno di VB (o quasi) non è cosa semplice.
Per intanto potresti cercare nel forum un esempio con inserimento da user e poi magari lavorarci un po' per adattarlo e poi magari chiedi dove hai problemi; è un modo anche per imparare.
Ora sono impegnato in altre faccende [SM=x423061] , se posso vedo di buttarti giù qualcosa, ma non ti prometto nulla [SM=x423060]

Ciao e buona serata
[SM=x423053]
Ciao
Antonio
(Versione excel:2003/2010)
Post: 7
Registrato il: 26/11/2013
Città: IMPERIA
Età: 51
Utente Junior
excel 2011 per MAC
OFFLINE
30/11/2013 22:20

Ciao Antonio.
Ti ringrazio. Ritengo tu abbia capito cosa mi serve, pertanto seguo il tuo consiglio.
Grazie ancora della disponibilità.
[SM=x423053]
Matteo
********************
excel 2007
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 22:18. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com