Allora, il programma serve a calcolare, in base ai dati inseriti dall'utente, quali capitale a inizio anno, versamenti e prelevamenti, con relative date di operazioni, gli interessi e il montante finale, aggiornando tutto in tempo reale (si aggiorna ad ogni nuova operazione), e infine tenere sempre una cella dedicata al montante finale al 31.12 (anche questa ovviamente si aggiorna continuamente, in base ai nuovi dati inseriti dall'utente).
Io ho messo tutte le celle del foglio in protezione, a parte quelle destinate all'utente, quindi versamenti, prelevamenti, date e capitale iniziale; il resto è bloccato, in quanto sono presenti all'interno, le formule ai calcoli dedicati.
Le due celle che io volevo invece tenere bloccate (ma solo contro l'utente) erano quelle relative al nominativo del titolare del conto e all'eventuale delegante. Ho allora dedicato un pulsante apposito che, tramite la sua pressione, chiede all'utente, tramite finestra di dialogo, di inserire nominativi del titolare e dell'eventuale delegante e di scriverli, sempre tramite la macro dedicata al medesimo pulsante, nelle 2 celle relative. Queste celle le ho protette anch'esse, e in questo caso, quando Excel, tramite questa macro, tenta di scriverci dentro, mi dà il famoso errore di run time 9; mentre se le lascio sprotette, funziona tutto alla perfezione, soltanto che non è così che deve andare, in quanto quelle 2 celle rimangono sprotette anche successivamente, quindi l'utente può manipolarle anche 'a mano'; è questo il problema.
Quelle celle devono rimanere protette.
Il codice relativo al pulsante è questo (lo avevo già postato ieri):
- Codice: Seleziona tutto
Sub InsNominativo_Click()
Dim Risp As String
Dim RispCognome As String
Dim LibDel As String
MsgBox "Questo passaggio è richiesto solo la prima volta che usi questo programma." & vbCr & "Dalla prossima volta, puoi utilizzare normalmente questo programma saltando questo passaggio.", vbInformation, "Informazione di routine"
Risp = InputBox("Inserisci il tuo nome")
Do While Risp <> "Nome_da_digitare"
Risp = InputBox("Devi inserire il tuo nome!, vbInformation, "Scrivi qui SOLO il tuo nome")
Loop
RispCognome = InputBox("Ok " & Risp & ", "Inserisci il tuo cognome... ", vbInformation, "Scrivi qui il tuo cognome")
Do While RispCognome <> "Cognome_da_digitare"
RispCognome = InputBox("Sbagliato. Riprova!")
Loop
LibDel = InputBox("A chi è affidata la delega? (Nome e Cognome)." & vbCr & "Se non ci sono deleghe, scrivi 'Me stesso'")
Do While LibDel = ""
LibDel = InputBox("Sbagliato. Riprova!" & vbCr & "Se non ci sono deleghe, scrivi pure 'Me stesso'.")
Loop
Cells(11, 4).Value = Risp & " " & RispCognome
Cells(6, 4).Value = LibDel
MsgBox "Bene, " & Risp & "!" & vbCr & "Premi INVIO per cominciare.", vbInformation, "Saluti finali"
End Sub
Di nuovo, grazie.