Cancellare il contenuto di una cella in relazione al cambiamento di un'altra cella

Anonimo
2015-01-21T09:53:08+00:00

Ho costruito un foglio excel dove ho inserito una casella combinata (ActiveX), cioè ho creato la possibilità di scegliere un valore da un elenco, che viene inserito in una cella. Vorrei che al cambiamento del valore di questa cella (scegliendo un altro valore dall'elenco) si cancelli il contenuto di un'altra cella, dove sono stati inseriti dei valori in precedenza in relazione al precedente valore dell'elenco a discesa.

È possibile?

Roberto

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

7 risposte

Ordina per: Più utili
  1. Anonimo
    2015-01-27T13:26:52+00:00

    Ciao Roberto,

    Grazie per la risposta, ma non funziona e probabilmente è anche troppo complicata la strada che ho scelto.

    Quando ho scritto che volevo "costringere", intendevo solo limitare gli errori di immissione non certo costringere qualcuno. 

    L'espressione non funziona non è molto chiara!

    Il  codice suggerito funziona per me senza alcun problema per rispondere alla richiesta che hai enunciato tu. Se fosse utile, potrei caricare il mio file di prova,

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-01-27T11:58:07+00:00

    Grazie per la risposta, ma non funziona e probabilmente è anche troppo complicata la strada che ho scelto.

    Quando ho scritto che volevo "costringere", intendevo solo limitare gli errori di immissione non certo costringere qualcuno. 

    Grazie ancora per l'aiuto

    Roberto

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-01-21T14:21:32+00:00

    Ciao Roberto,

    Ho un elenco di valori (A2:A7), che possono essere scelti dal controllo ActiveX. La scelta viene riportata in E2 automaticamente. Vorrei che al cambiare del valore in E2 (dalla scelta del controllo ActiveX) si cancelli il valore in G2 e si "costringa" un utente ad inserire un valore nuovo.

    Devo dirti che non mi piacciono troppo i modi di constringere un utente ma, detto questo, forse potresti provare qualcosa del genere:

    • Fai clic dx sulla linguetta del foglio
    • Seleziona l'opzione Visualizza Codice
    • Incolla il seguente codice:

    '=========>>

    Option Explicit

    Private iCtr As Long

    Private Const miaCella As String = "G2"                                            '<<==== Modifica

    Private blConstringa As Boolean

    '--------->>

    Private Sub ComboBox1_Change()

        Dim Rng As Range

        Dim sStr As String

        With Me

            If .ComboBox1.Value <> vbNullString Then

                iCtr = 0

                Set Rng = .Range(miaCella)

                With Rng

                    .ClearContents

                    blConstringa = True

                    Application.EnableEvents = False

                    .Select

                    Application.EnableEvents = True

                End With

            End If

        End With

    End Sub

    '--------->>

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

        Dim Rng As Range

        Dim iCtr As Long

        If Not blConstringa Then

            Exit Sub

        End If

        Set Rng = Me.Range(miaCella)

        iCtr = iCtr + 1

        On Error GoTo XIT

        Application.EnableEvents = False

        If iCtr < 4 Then

            If IsEmpty(Rng.Value) Then

                Rng.Select

                Call MsgBox(Prompt:="Devi inserire un valore nella cella " & miaCella & "!", _

                            Buttons:=vbCritical, _

                            Title:="Valore mancante")

            Else

                blConstringa = False

                GoTo XIT

            End If

        End If

    XIT:

        If iCtr > 3 And IsEmpty(Rng.Value) Then

            Call MsgBox(Prompt:="Allora,sii testardo; fai quello che vuoi tu!!!", _

                        Buttons:=vbCritical, _

                        Title:="Valore mancante")

            blConstringa = False

        End If

        Application.EnableEvents = True

    End Sub

    '<<==========

    Alt-Q per chiudere l'editor di VBA e tornare a Excel. Salva il file come un file del tipo xlsm.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-01-21T11:43:23+00:00

    Ho un elenco di valori (A2:A7), che possono essere scelti dal controllo ActiveX. La scelta viene riportata in E2 automaticamente. Vorrei che al cambiare del valore in E2 (dalla scelta del controllo ActiveX) si cancelli il valore in G2 e si "costringa" un utente ad inserire un valore nuovo.

    Grazie 

    Roberto

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2015-01-21T11:08:56+00:00

    È possibile?

    Roberto

    Se spieghi bene a quali celle ti riferisci (A1, C10, ecc.) o, meglio, se condividi un file, ti possiamo aiutare meglio. Grazie.

    La risposta è stata utile?

    0 commenti Nessun commento