Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Problema blocco celle

  1. #1
    zymarco non è in linea Scolaretto
    Buongiorno a tutti,
    ho un problema con un foglio di lavoro excel e non so come risolverlo.
    Nel folgio 1 ho sbloccato tutte le celle ed ho inserito una griglia (colonne e righe) dove ogni persona puo scrivere il proprio nome all'interno.
    Io vorrei che ad ogni inserimento quella cella venisse bloccata in modo da impedire ogni manomissione (sostituzione nome o cancellazione nome).

    Come devo fare?

    Grazie mille.

  2. #2
    ricky53 non è in linea Scribacchino
    Ciao,
    la cosa è fattibile con del codice VBa però attenzione il foglio va protetto.

    Se il tuo scopo è impedire cancellazioni accidentali allora si può fare.

    Se invece vuoi impedire di cancellare volontariamente il contenuto delle celle allora non hai nessuna sicurezza perchè le protezioni di excel sono violabilissime.
    ℹ️ Leggi di più su ricky53 ...

  3. #3
    zymarco non è in linea Scolaretto
    Ciao Ricky

    si esattamente è quello che volgio fare, cioè mediante codice VBA voglio bloccare la cella quando questa viene scritta in modo da impedire che venga manomessa.
    In pratica voglio che l'intero foglio sia sbloccato e poi ad ogni cella scritta questa venga bloccata (es inserendo poi una password come 123 che mi serve per eventuali modifiche che solo io devo fare).

    Come devo scrivere il codice VBA?

    Grazie mille.

  4. #4
    GiuseppeMN non è in linea Scribacchino
    Buona giornata, zymarco;
    credo che il codice debba essere legato a Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Partendo da un foglio in cui tutte le celle sono "Sbloccate" e "Visibili" ho inserito la seguente procedura:
    1) Gestione degli errori (On Error GoTo 10)
    2) Verifica del contenuto della cella attiva
    3) Sblocco del foglio con password se il contenuto della cella è <> ""
    4) Blocco della cella
    5) Blocco del foglio con password

    Ovviamente il progetto VBA va protetto con password, altrimenti ogni Utente può visualizzare la password.

    Per poter modificare le celle bloccate sarà necessario:
    1) selezionare la cella da modificare,
    2) sbloccare manualmente il foglio inserendo la password,
    3) apportare le modifiche,
    4) selezionare nuovamente la cella modificata o una qualunque cella che abbia un valore inserito.

    Buona giornata e buon lavoro.

    Giuseppe

  5. #5
    ricky53 non è in linea Scribacchino
    Ciao,
    prima leggi quanto ti ha scritto Giuseppe e poi prova anche questo mio esempio
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target <> "" Then
            ActiveSheet.Unprotect Password:="123"
            Target.Locked = True
            Target.FormulaHidden = True
            ActiveSheet.Protect Password:="123"
        End If
    End Sub
    
    ATTENZIONE: il codice va inserito, in VBAProgect, in un Foglio e "NON" in un Modulo
    ℹ️ Leggi di più su ricky53 ...

  6. #6
    zymarco non è in linea Scolaretto
    Grazie mille per le informazioni.
    Leggendo i vostri suggerimenti e smanettando ho scritto questo codice:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim minni As String
    Dim x As Integer
    ActiveSheet.Unprotect ("987")


    For x = 1 To 18
    minni = "$A$" & x
    Select Case Target.Address

    Case minni
    If Cells.Range(minni).Value = "" Then
    Exit Sub
    Else
    Range(minni).Locked = True
    ActiveSheet.Protect ("987")
    GoTo fine
    End If

    End Select
    Next

    fine:
    End Sub


    Questo mi permette di tenere sotto controllo un Range di celle da A1 a A18 e nel caso qualcuno ci scriva dentro blocco la cella in modo da impedire modifiche.

    Cosa ne pensate?
    si può scrivere in maniera migliore?

    Grazie

  7. #7
    ricky53 non è in linea Scribacchino
    Ciao,
    si si può fare qualche cambiamento.
    Però mi chiedo perchè controllare tutto l'intervallo ogni volta, basta controllare la cella che è stata cambiata.
    Hai provato quanto ti ho inviato?
    Al mio codice si può aggiungere: se il cambiamento è fatto fuori del tuo intervallo non fa nulla ed esce
    ℹ️ Leggi di più su ricky53 ...

  8. #8
    zymarco non è in linea Scolaretto
    Ciao Ricky,

    Il fatto è che le celle che devo controllare sono 18, cioè da A1 a A18.
    Infatti in questo range gli utenti inseriscono il loro nome e quindi devo bloccare la cella per impedire manomissioni o cancellature.
    Al di fuori del Range A1 : A18 gli utenti possono tranquillamente scrivere o modificare i dati e quindi non necessita di blocco.

    Ho provato a modificare il tuo codice inserendo un range ma non mi funziona.
    In pratica al tuo codice

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.address ???????????? (range("A1:A18")) Then
    ActiveSheet.Unprotect Password:="123"
    Target.Locked = True
    Target.FormulaHidden = True
    ActiveSheet.Protect Password:="123"
    End If
    End Sub

    Come devo modificare per confrontarlo con un range specifico es A1:A18 oppure A1: C30?


    Grazie
    Ultima modifica di zymarco; 15-11-2012 14:31 

  9. #9
    ricky53 non è in linea Scribacchino
    Ciao,
    tra un po' ti invio il codice che controlla l'intervallo.
    ℹ️ Leggi di più su ricky53 ...

  10. #10
    ricky53 non è in linea Scribacchino
    Ciao,
    prova con questo codice
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Intersect(Range("A1:A18"), Target) Is Nothing Then
            Exit Sub
        End If
        If (Target.Columns.Count + Target.Rows.Count) > 2 Then
            MsgBox "Operare su una sola CELLA"
            Exit Sub
        End If
        If Target <> "" Then
            ActiveSheet.Unprotect Password:="123"
            Target.Locked = True
            Target.FormulaHidden = True
            ActiveSheet.Protect Password:="123"
        End If
    End Sub
    
    Adatta, se occorre, l'intervallo.

    Prova e ... sono QUI
    ℹ️ Leggi di più su ricky53 ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. blocco celle dopo il calcolo
    Da pinacolata1966 nel forum Microsoft Word
    Risposte: 1
    Ultimo Post: 15-10-2017, 07:23
  2. Stampare blocco celle ed impedire la stampa di altre
    Da MoNsTeR88 nel forum Microsoft Excel
    Risposte: 9
    Ultimo Post: 06-03-2014, 16:47
  3. Problema blocco dimensione celle
    Da zymarco nel forum Microsoft Excel
    Risposte: 4
    Ultimo Post: 05-02-2013, 12:23
  4. Blocco celle, no inserimento riga.
    Da lligio nel forum Microsoft Excel
    Risposte: 13
    Ultimo Post: 16-01-2013, 14:44
  5. Problema Blocco Tabelle
    Da Marco81 nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 08-07-2005, 15:13