controllo valori VBA



  • controllo valori VBA
    di icezone (utente non iscritto) data: 29/03/2013 17:07:08

    Ciao a tutti,

    vi scrivo perché ho una necessità urgente e non sono pratico di VBA. Ho un file Excel con due valori che devono essere sempre uguali, uno che è 500 (inserito a mano) e l'altro che è sempre 500 ma frutto di una sommatoria. Vorrei, al momento del save, che Excel mi controllasse che questi due numeri siano sempre uguali (uno è in cella "a2" e la sommatoria in cella "a10") e che mi desse un avviso nel caso non lo fossero ma che mi permetta comunque di salvare se voglio.
    Vi ringrazio in anticipo, spero mi possiate aiutare!!

    E buona Pasqua a tutti!!



  • di HarryBosch data: 29/03/2013 17:34:23

    Ciao Icezone,
    ma vuoi proprio intercettare tutte le volte che usi il "save", oppure è sufficiente la verifica alla chiusura del file?
    ovviamente con tanto di messaggio che ti avvisa se vuoi comunque proseguire o meno nella chiusura. In questo caso sarebbe molto più semplice, perché l'evento "BeforeClose" è quello che serve...



  • di icezone (utente non iscritto) data: 29/03/2013 17:38:12

    mmh preferirei al save, ma se proprio è problematico potrebbe andare bene anche un check alla chiusura.
    Ti ringrazio in anticipo!



  • di HarryBosch data: 29/03/2013 17:48:08

    Per il controllo alla chiusura del file, la routine qua sotto verifica quanto detto.

    Da modificare il nome del foglio/fogli dove sono disposti gli intervalli interessati.
    La routine va messa nel modulo del "ThisWorkbook"

    Ti allego un file al volo.

     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
        If Sheets("Foglio1").[a2] <> Sheets("Foglio1").[a10] Then
    
            Select Case MsgBox("I valori non corrispondono." _
                               & vbCrLf & "Vuoi comunque chiudere il file?" _
                               , vbYesNo Or vbExclamation Or vbDefaultButton1, "Valori_diversi")
            Case vbYes
                ActiveWorkbook.Save
            Case vbNo
                Cancel = True
            End Select
            
        End If
    End Sub
    



  • di Vecchio Frac data: 29/03/2013 17:51:17

    cit. " preferirei al save, ma se proprio è problematico potrebbe andare bene anche un check alla chiusura"
    ---> La stessa routine che ha confezionato Vanni (a me piace per virtuosismo ed eleganza) si può applicare al momento del salvataggio, mediante l'evento BeforeSave la cui firma è:
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)






  • di icezone (utente non iscritto) data: 29/03/2013 17:58:47

    E' perfetto, grazie mille!!!!!!
    se si riuscisse a fare con il BeforeSave sarebbe stratosferico ma va bene anche così

    Grazie ancora e buona Pasqua!



  • di icezone (utente non iscritto) data: 29/03/2013 18:01:32

    Ora è stratosferico :D

    Imparerò a programmare un giorno, lo giuro

    Grazie!!



  • di HarryBosch data: 29/03/2013 18:14:18

    Ottimo! VecchioFranz ti ha già risposto anche per l'ipotesi con il Save.
    Se ritieni risolta la discussione, puoi spuntare la relativa casellina nel thread.

    E se inizi a programmare, qua trovi delle ottime persone che sapranno darti una mano con il vba o il vb in generale ^_^



  • di icezone (utente non iscritto) data: 29/03/2013 18:30:17

    Risolto risolto! :)