Macro per cancellare un valore di una cella in base a valori di altre celle

Anonimo
2018-03-18T14:17:05+00:00

Buongiorno,

quando nella cella A20 del foglio "BLINDATO" viene visualizzato 1, nella cella I24 del foglio "Offerta" inserisco un valore, (es.85)

dal momento che nella cella A20 sempre nel foglio "BLINDATO" viene visualizzato 2, la cella I24 deve automaticamente azzerrarsi

Grazie

Marco

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
    2018-03-19T21:56:32+00:00

    Ciao Marco,

    nulla da aggiungere alla vs. preparazione professionale e simpatia rispetto quello che già vi ho detto. GRANDE!!!

    Problema risolto, come sempre

    Buon proseguimento di lavoro

    Mi fa piacere che tu abbia risolto il problema e ti ringrazio per il riscontro fin troppo cortese!

    Per chiudere questo thread, vorrei chiederti gentilmente di contrassegnare la mia risposta come Risposta. In questo modo, tu aiuterai anche coloro che potessero cercare soluzioni ai problemi simili negli archivi della Community.

    Alla prossima!

    ===

    Regards,

    Norman

    La risposta è stata utile?

    50+ persone hanno trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2018-03-19T13:23:09+00:00

    Ciao Marco,

    nella cella A20 automaticamente viene visualizzato il valore 1 o 2 in base ad un modello scelto di portoncino (1 anta, 2 ante)

    Se nella cella A20 risulta 1, nella cella I24 non devo immettere niente.

    Se nella cella A20 risulta 2, nella cella I24 devo inserire una seconda misura (seconda anta)

    Se cerco un'altro modello ad 1 anta vorrei che automaticamente la misura inserita nella cella I24 si cancelli.

    OK!

    Se il tuo obbiettivo sia quello di cancellare il valore nella cella  I24del foglio Offerta in risposta all'immissione di qualunque valore, altro che 1, nella cella A20 del foglio BLINDATO, prova qualcosa del genere:

    • Fai clic dx sulla linguetta del foglio di interesse
    • Seleziona l'opzione Visualizza Codice dal **** menu contestuale risultante
    • Incolla il seguente codice:

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

    Option Explicit

    Private Const sfoglioDestinazione As String = "OFFERTA"    '<<=== Modifica

    Private Const sCellaDestinazione = "I24"                               '<<=== Modifica

    Private Const sCellaSorgente = "A20"                                     '<<=== Modifica

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

    Private Sub Worksheet_Calculate()

        Dim destSH As Worksheet

        Dim srcRng As Range, destRng As Range

        With Me

            Set srcRng = .Range(sCellaSorgente)

            If srcRng.Value = 1 Then

                Exit Sub

            End If

            Set destSH = .Parent.Sheets(sfoglioDestinazione)

            Set destRng = destSH.Range(sCellaDestinazione)

        End With

        Call CancellaAnta(destRng)

    End Sub

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

    Private Sub Worksheet_Change(ByVal Target As Range)

        Dim destSH As Worksheet

        Dim srcRng As Range, destRng As Range

        With Me

            Set srcRng = Intersect(Target, .Range(sCellaSorgente))

            If srcRng Is Nothing Then

                Exit Sub

            End If

            If srcRng.Value <> 1 Then

                Set destSH = .Parent.Sheets(sfoglioDestinazione)

                Set destRng = destSH.Range(sCellaDestinazione)

                Call CancellaAnta(destRng)

            End If

        End With

    End Sub

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

    • Alt+IM per inserire un nuovo modulo di codice
    • Nel nuovo modulo vuoto, incolla il seguente codice:

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

    Option Explicit

    '--------->

    Public Sub CancellaAnta(rCell As Range)

        On Error GoTo XIT

        Application.EnableEvents = False

        rCell.ClearContents

    XIT:

        Application.EnableEvents = True

    End Sub

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

    • Alt+Q per chiudere l'editor di VBA e tornare a Excel
    • Salva il file con l'estensione xlsm(oxls)

    ===

    Regards,

    Norman

    La risposta è stata utile?

    4 persone hanno trovato utile questa risposta.
    0 commenti Nessun commento
  3. Anonimo
    2018-03-19T23:03:06+00:00

    Ciao David,

    non sono molto sicuro e vorrei sincerarmi che non sbaglio manovra o dimentico un passaggio, perchè mi dispiacerebbe nei vs. confronti.

    Dopo la vostra risposta in fondo viene sempre la scritta:

    PASSAGGI SUCCESSIVI*

    La risposta è risultata utile? Fai conoscere a Norman David Jones l'autore.

    [Vota come utile]

    La risposta di Norman David Jones è risultata utile? Informa la community!

    [Contrassegna la risposta come tua]

    Io clicco sempre su "Vota come utile" e "Contrassegna la risposta come tua"

    E' giusto o manca da parte mia un passaggio ???

    Grazie

    Marco

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  4. Anonimo
    2018-03-19T07:37:24+00:00

    Buongiorno David,

    nella cella A20 automaticamente viene visualizzato il valore 1 o 2 in base ad un modello scelto di portoncino (1 anta, 2 ante)

    Se nella cella A20 risulta 1, nella cella I24 non devo immettere niente.

    Se nella cella A20 risulta 2, nella cella I24 devo inserire una seconda misura (seconda anta)

    Se cerco un'altro modello ad 1 anta vorrei che automaticamente la misura inserita nella cella I24 si cancelli.

    Grazie David per la pazienza

    Marco

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2018-03-19T00:06:26+00:00

    Ciao Marco,

    quando nella cella A20 del foglio "BLINDATO" viene visualizzato 1, nella cella I24 del foglio "Offerta" inserisco un valore, (es.85)

    dal momento che nella cella A20 sempre nel foglio "BLINDATO" viene visualizzato 2, la cells I24 deve automaticamente azzerrarsi

    Non credo che sia necessario sporcarsi le mani con una macro per ottenere i risultati indicati. Pertanto, nella cella I24  sul foglio Offerta, prova una formula del genere:

     =SE(BLINDATO!A20=1;85;SE(BLINDATO!A20=2;"";"Altro valore!"))

    Non hai precisato cosa dovrebbe accadere se un valore altro che 1 o 2fosse immesso nella cella A20 del foglio **BLINDATO ma,**in tal caso, questa formula restituirebbe il valore Altro valore!

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento