Condividi tramite

macro per bloccare celle

Anonimo
2013-02-20T23:13:58+00:00

Ciao a tutti.

Sto lavorando ad un foglio nel quale, in ciascuna riga, occorre inserire alcuni particolari campi...

I movimenti da registrare sono davvero tantissimi.

Mi occorrerebbe creare, però, un controllo su alcune colonne.

In particolare, su ciascuna riga, ad esempio:

  • se nella cella A è "Si", allora blocca B;
  • se nella cella C è "No", allora blocca D;

e così via...

Pensate sia fattibile una cosa del genere????

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-03-04T08:11:36+00:00

 

Mauro ho fatto esattamente come dici tu, ma non funziona niente :( cioè non cambia proprio niente... sbagli sicuramente qualcosa?

Vedi qui il file utilizzato per l'esempio:

http://www.maurogsc.eu/esempiforum13/impedireselezionecelle.zip

Le celle sono colorate a coppie.

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-03-03T15:45:25+00:00

Puoi usare più semplicemente l'opzione Convalida Dati (barra Dati/Strumenti Dati).

Per esempio circa il primo punto, posizionati sulla cella da bloccare AH11, clicca su Convalida Dati, quindi:

nel campo Consenti scegli Personalizzato,

nel campo formula questa formula: =$Y$9=2

togli la spunta al campo Ignora celle vuote.

Volendo puoi anche inserire un messaggio di input e/o uno di errore.

Fai la stessa cosa per tutte le celle da bloccare, ovviamente cambiando la condizione nella formula.

Così per la cella AD17 la formula di controllo diventa:

=$U$17="Si" 

Per la cella AK49 la formula diventa:

=$S$29<>0

La risposta è stata utile?

0 commenti Nessun commento

5 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-03-03T15:28:21+00:00

    Ciao Mauro, 

    richiedo il tuo aiuto per una info ulteriore sempre sullo stesso tema....

    <cut>

    e così via...

    potresti darmi una traccia e una mano per poter iniziare a lavorare su questa cosa????

    Nel foglio dove hai quelle celle:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

        If Target.Cells.Count > 1 Then Exit Sub

        Select Case Target.Address(False, False)

            Case "AH11"

                If Me.Range("Y9").Value <> 2 Then

                    Me.Range("Y9").Select

                End If

            Case "AD17"

                If UCase(Me.Range("U17").Value) <> "SI" Then

                    Me.Range("U17").Select

                End If

            '....

            '....

            Case "AK49"

                If Len(Me.Range("S19").Value) = 0 Then

                    Me.Range("S19").Select

                End If

        End Select

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-03-03T12:04:14+00:00

    Ciao Mauro, 

    richiedo il tuo aiuto per una info ulteriore sempre sullo stesso tema....

    Sto lavorando a questo file: http://sdrv.ms/Z6Zj4k

    Avrei necessità di bloccare alcune celle. Per "bloccare" intendo che nella cella controllata è impedito inserire alcunchè se nella cella controllante ci sia o meno un determinato valore...

    In particolare, nel file che ti ho indicato:

    • se in Y9 c'è 2, allora si attiva la cella AH11 (diversamente è bloccata);
    • se in U17 è presente "Si", allora è possibile inserire la data in AD17;
    • se in U19 è presente "Si", allora è possibile valorizzare AF19;
    • se in U21 è presente "Si", allora è possibile valorizzare AF21;
    • se in S47 è presente "Si", allora è possibile valorizzare S49;
    • se in S29 è presente un valore, allora è possibile valorizzare AK49;

    ...

    e così via...

    potresti darmi una traccia e una mano per poter iniziare a lavorare su questa cosa????

    Grazieeeeeeeeeeeeeeeeeee

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-02-21T09:11:59+00:00

    Ciao a tutti.

    Sto lavorando ad un foglio nel quale, in ciascuna riga, occorre inserire alcuni particolari campi...

    I movimenti da registrare sono davvero tantissimi.

    Mi occorrerebbe creare, però, un controllo su alcune colonne.

    In particolare, su ciascuna riga, ad esempio:

    • se nella cella A è "Si", allora blocca B;
    • se nella cella C è "No", allora blocca D;

    e così via...

    Pensate sia fattibile una cosa del genere????

    Definisci: bloccare, per favore.

    Ad esempio questa, da inserire nel modulo di codice del foglio dove hai i dati, impedisce di selezionare la cella B se è presente Si in A o la cella D se è presente No in C:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

        With Target

            If .Cells.Count = 1 Then

                If .Column = 2 Then

                    If UCase(.Offset(0, -1).Value) = "SI" Then

                        .Offset(0, -1).Select

                    End If

                ElseIf .Column = 4 Then

                    If UCase(.Offset(0, -1).Value) = "NO" Then

                        .Offset(0, -1).Select

                    End If

                End If

            End If

        End With

    End Sub

    Il file utilizzato per l'esempio lo puoi trovare qui:

    http://www.maurogsc.eu/esempiforum13/bloccocelle.zip

    La risposta è stata utile?

    0 commenti Nessun commento