MSGBOX da risultato formula



  • MSGBOX da risultato formula
    di aresca data: 27/03/2014 15:29:33

    Ciao,
    è possibile generare un MSGBOX con una scritta di avviso ed il solo pulsante di OK, al verificarsi della condizione che la cella D1 sia maggiore di 0?
    vi ringrazio



  • di Lucas87 data: 27/03/2014 15:35:10

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "D1" And Target = 0 Then
    MsgBox "Attenzione D1 è uguale a 0", vbCritical + vbOKOnly, "Attenzione"
    End If
    End Sub



  • di Lucas87 data: 27/03/2014 15:38:24

    Scusa avevo letto uguale a 0
    Ti basta sostituire = con > e modificare la scritta nel messaggio

    PS: Ho il dubbio a causa del titolo. Se il valore della cella è ottenuto con una formula allora non funziona. in quel caso il codice deve sostituire la formula e fare il controllo.



  • di aresca data: 27/03/2014 16:12:08

    Si, hai ragione... infatti il contenuto della cella non è statico ma è generato da una formula.. e cioè

    =CONTA.SE($E:$E;1)



  • di Lucas87 data: 27/03/2014 16:25:43

    Altrimenti puoi usare la convalida dati.
    Selezioni la cella D1.
    Clicchi su "Dati" sulla barra strumenti e poi "Convalida"
    Selezioni:
    numero intero
    minore di
    1
    Poi nella scheda "messaggio di errore" scrivi quello che vuoi



  • di aresca data: 27/03/2014 16:36:36

    mmhhh... sicuro?? funziona mica sai....



  • di Lucas87 data: 27/03/2014 16:48:53

    Boh..prima il messaggio era venuto fuori..non so perchè.
    Comunque a questo punto bisogna cambiare sistema.
    Dovrai allegare un file di esempio (interessa la struttura e la distribuzione dei dati) e spiegare meglio cosa ti serve.
    In pratica bisogna far fare al codice quello che fa la formula. Esistono diversi modi a seconda del caso.
    In particolare potresti dire come viene compilata la colonna E e se il valore in D1 è necessario o è sufficiente che venga mostrato il messaggio?



  • di aresca (utente non iscritto) data: 27/03/2014 17:19:44

    Beh allora...
    Le celle della colonna D (tutte fuorchè la cella D1) si popolano di un errore (#N/D) o di un valore numerico in base ad una formula. Se quindi le formule delle celle della colonna D ottengono l'errore (#N/D) le celle della colonna E si popolano con il valore 0, se invece le formule delle celle della colonna D ottengono come risultato un valore, le celle della colonna E si popolano con il valore 1.
    La cella D1 quindi restituisce il valore della quantità di 1 che trova nella colonna E.
    Siccome, per il lavoro che il foglio deve fare, la cella D1 non dovrebbe mai ottenere un valore >=1 ma sempre 0, volevo che nel caso questo avvenisse, potesse comparire un alert informativo



  • di aresca data: 28/03/2014 12:22:41

    ehmm... Lucas... hai letto le mie ultime note? Sono abbastanza chiare?



  • di Lucas87 data: 28/03/2014 12:43:26

    Ok
    Verificare se nella colonna E (su tutta?) esiste il valore 1 e restituire un messaggio di errore è possibile.
    Resta da capire quando fare il controllo.
    Con un pulsante sarebbe la soluzione più veloce, però richiede che l'utente lo prema quindi si riduce l'automatismo.
    L'alternativa sarebbe di fare la verifica quando viene compilata una cella o un gruppo di celle (come la prima soluzione che ho messo). Ricorda che il cambio di una cella in funzione di una formula non viene rilevato. Quindi devi trovare la cella o il gruppo di celle che, modificate manualmente, danno inizio ai calcoli.
    Es. l'utente inserisce in A1 un valore che permette il ricalcolo delle celle in E e D con le formule. A1 sarà la cella da controllare.

    L'invito ad allegare il file è sempre valido



  • di scossa data: 28/03/2014 14:00:17

    cit.: " Se quindi le formule delle celle della colonna D ottengono l'errore (#N/D) le celle della colonna E si popolano con il valore 0 .."

    Scusa ma se le celle della colonna D sono formule, e le celle della colonna E sono formule (si popolano in dipendenza di D) .... alllora quali sono le celle (qual'è la colonna) in cui inserisci i dati?



  • di aresca data: 28/03/2014 15:31:44

    @scossa - prendono i dati da un cerca.vert che fa il controllo su un altro file excel... compilato da altri utenti insomma... residente sul nostro server aziendale ma compilato da altri utenti...



  • di Lucas87 data: 28/03/2014 15:49:49

    Quindi non vengono inseriti dati in quel foglio...

    Se ho capito bene...
    Chi di dovere apre il file e le formule in colonna D e E controllano i file esterni.
    A sua volta la formula in D1 controlla quanti 1 ci sono sulla colonna E.
    Quindi ti andrebbe bene mettere un pulsante che faccia il controllo di quanti 1 ci sono in colonna E?



  • di aresca data: 28/03/2014 16:17:11

    Guarda... mettere un pulsante per verificare il risultato di una formula non ha tanto senso secondo me... si va a vedere la cella D1 e se è >o = a 1 alora c'è l'anomalia altrimenti è tutto ok...
    Quello che cercavo di ottenere è un alert per l'utente che utilizza il file dei controlli (quello con la cella D1 per intenderci...) che, magari alla apertura del file o al salvataggio dello stesso (oppure al lancio del calcolo delle formule... che è manuale... non automatico) ottiene un alert di Attenzione che lo avvisa che il valore di D1 è =>1... che poi nella descrizione del message box ci sarebbe la spiegazione... ma l'utente saprebbe immediatamente della anomalia in corso