Risultati da 1 a 6 di 6

Discussione: Azioni combinate da annullare



  1. #1
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3212
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155

    Azioni combinate da annullare

    Buona sera a tutti
    Problema all'apparenza banale ma per il quale non trovo soluzioni soddisfacenti.

    In un foglio Excel nella cella A1 ho un menu a tendina con 5 valori presi dall'intervallo H1:H5
    A seconda del valore selezionato in A1, la formula inserita in B1 mi fa la somma dei dati di un determinato intervallo (colonna M, N, O, P o Q dalla riga 1 alla riga 10). Fin qui tutto OK
    Tramite l'evento Workksheet_Change del Foglio interessato vorrei che apparisse un avviso "PRIMA" del cambiamento del dato selezionato e della conseguente variazione del risultato in B1.
    In alternativa vorrei poter applicare la funzione Application.Undo se mi accorgo di aver selezionato male.

    Qualcuno sa darmi una dritta? Grazie in anticipo.
    Ciao,
    Mario

  2. #2
    L'avatar di Textomb
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    47
    Messaggi
    171
    Versione Office
    Excel 2016
    Likes ricevuti
    93
    Likes dati
    11
    Mario volevo provare ma devo ricreare lo scenario che hai descritto... Uffa. Non è che avresti già un file da allegare. Sono pigro.
    Inoltre. Ho letto la richiesta ma non ho capito bene. Ci dai qualche altra spiegazione integrativa? please...

  3. #3
    L'avatar di Textomb
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    47
    Messaggi
    171
    Versione Office
    Excel 2016
    Likes ricevuti
    93
    Likes dati
    11
    Vabbè Mario.
    Solo perchè sei tu! :269:
    Ho fatto io una prova.
    Spero di aver interpretato correttamente la tua esigenza.
    Saluti da Catania. :23:

    Codice: 
    
    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Risp As VbMsgBoxResult
    If Bln And Blx Then Exit Sub
    
    
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Risp = MsgBox("Hai selezionato il mese di " & Target & vbCr & "Vuoi Proseguire?", vbYesNo + vbInformation)
            If Risp = vbNo Then
                Bln = True
                Blx = True
                Application.Undo
            End If
        Blx = False
    End If
    
    
    End Sub
    File Allegati File Allegati
    Ultima modifica fatta da:Gerardo Zuccalà; 11/01/16 alle 21:13 Motivo: Mancava Codice VBA

  4. I seguenti utenti hanno dato un "Like"


  5. #4
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3212
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Alberto sei grande!!!:230:
    Non posso non genuflettermi:23:
    Ero impegnato coi nipotini e non ho letto la tua richiesta.

    Sei stato eccezionale. Grazie infinite:274::97:

    Ciao,
    Mario

  6. #5
    L'avatar di Textomb
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    47
    Messaggi
    171
    Versione Office
    Excel 2016
    Likes ricevuti
    93
    Likes dati
    11
    Citazione Originariamente Scritto da Marius44 Visualizza Messaggio
    Alberto sei grande!!!:230:
    Non posso non genuflettermi:23:
    Ero impegnato coi nipotini e non ho letto la tua richiesta.

    Sei stato eccezionale. Grazie infinite:274::97:

    Ciao,
    Mario
    Mario non essere esagerato... Cerco di dare il mio modesto contributo.
    A proposito, devo delle scuse a Gerardo per non avere postato il codice del file in allegato. Ma avevo un'orata nel forno e si stava per bruciare!

    Infine, ad integrazione, anche se può sembrare superfluo, va detto che le due varibili Bln e Blx sono due variabili globali dichiarate in un modulo standard.

  7. #6

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1017
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0
    Ciao Alberto,
    ottima soluzione.

    Citazione Originariamente Scritto da Textomb Visualizza Messaggio
    Infine, ad integrazione, anche se può sembrare superfluo, va detto che le due varibili Bln e Blx sono due variabili globali dichiarate in un modulo standard.

    Se mi è permessa un'osservazione, secondo me sarebbe preferibile usare due variabili statiche:

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
      Static Bln As Boolean
      Static blx As Boolean
      Dim Risp As VbMsgBoxResult
      
      If Bln And blx Then Exit Sub
      
      If Not Intersect(Target, Range("A1")) Is Nothing Then
        Risp = MsgBox("Hai selezionato il mese di " & Target & vbCr & "Vuoi Proseguire?", vbYesNo + vbInformation)
        If Risp = vbNo Then
          Bln = True
          blx = True
          Application.Undo
        End If
        blx = False
      End If
      
    End Sub
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  8. I seguenti utenti hanno dato un "Like"


Discussioni Simili

  1. Problema con caselle combinate (ActiveX) inserite su Foglio di Lavoro
    Di MarcoM nel forum Domande su Excel VBA e MACRO
    Risposte: 10
    Ultimo Messaggio: 03/03/17, 21:31
  2. [Risolto] Azioni sul Pulsante
    Di dpg70 nel forum Domande su Excel VBA e MACRO
    Risposte: 12
    Ultimo Messaggio: 11/01/17, 22:30
  3. Caselle combinate (combobox) concatenate
    Di greenstar nel forum Domande su Excel in generale
    Risposte: 12
    Ultimo Messaggio: 13/10/16, 20:48
  4. Caselle combinate temporali
    Di Beppe92 nel forum Domande su Excel in generale
    Risposte: 17
    Ultimo Messaggio: 15/02/16, 02:19

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •