Condividi:        

Sintassi IF corretta in VBA x Excel 2013

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Sintassi IF corretta in VBA x Excel 2013

Postdi femon » 04/10/16 13:47

Salve a tutti,
ho necessità di usare la funzione IF in vba ma continua a darmi errore o debug. :( :(

Mi spiego meglio: Ho la cella A1 che mi dà un valore derivante dalla formula "cerca.verticale" e che dunque può darmi un valore concreto >0 oppure il classico #N/D quando la formula trova campo vuoto nella cella che indica quale valore cercare.
Poi ho la cella B1 che invece mi dà il risultato di una sommatoria di una particolare colonna e che dunque può essere =0 oppure >0;
infine ho la cella C1 che mi fa la differenza tra (B1 - A1) e che dunque può avere segno neg, pos, o #N/D quando anche la cella A1 è #N/D.

Ora la mia necessità è avere un alert msg box o un suono (o meglio entrambi) solo quando sia la cella A1 è positiva, sia la cella B1 è positiva e sia la cella C1 trova una differenza positiva.

Sinceramente ho provato con IF ed AND ma quando ho le celle vuote o con #N/D continua a darmi errore e debug..... :oops: :oops:
Grazie a chi può aiutarmi.
femon
Utente Senior
 
Post: 101
Iscritto il: 12/03/14 18:51

Sponsor
 

Re: Sintassi IF corretta in VBA x Excel 2013

Postdi Marius44 » 04/10/16 14:09

Ciao
penso al tuo caso si adatti la funzione SE.ERRORE che riporto dalla Guida di Excel

SE.ERRORE
Restituisce un valore specificato se una formula fornisce come risultato un errore. In caso contrario, restituisce il risultato della formula. Utilizzare la funzione SE.ERRORE per intercettare e gestire gli errori di una formula (formula: Sequenza di valori, riferimenti di cella, nomi, funzioni oppure operatori contenuti in una cella che, insieme, generano un nuovo valore. Una formula inizia sempre con un segno di uguale (=).).

Sintassi
SE.ERRORE(valore,se_errore)

Valore Argomento in cui viene verificata la presenza di un errore.

se_errore Valore da restituire se la formula fornisce come risultato un errore. Vengono valutati i tipi di errore seguenti: #N/D, #VALORE!, #RIF!, #DIV/0!, #NUM!, #NOME? o #NULLO!.

Ciao,
Mario
Marius44
Utente Senior
 
Post: 655
Iscritto il: 07/09/15 22:00

Re: Sintassi IF corretta in VBA x Excel 2013

Postdi wallace&gromit » 04/10/16 14:23

Però Mario femon chiede una macro
così a naso per usare la funzione se.errore nel vba devi introdurre con WorksheetFunction e poi il nome inglese if.error (?), non ho il tempo di provare ora.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Sintassi IF corretta in VBA x Excel 2013

Postdi femon » 04/10/16 14:47

Esatto wallace...
In realtà anche se le celle mi danno valore di errore non mi importa.
Vorrei solo che il messaggio mi comparisse solo quando tutte e 3 le celle sono >0
Sinceramente non so come tradurre la funzione SE.ERRORE in vba....
Grazie.
Federico.
femon
Utente Senior
 
Post: 101
Iscritto il: 12/03/14 18:51

Re: Sintassi IF corretta in VBA x Excel 2013

Postdi alfrimpa » 04/10/16 15:23

Federico se alleghi un file di esempio con i dati ed il risultato che vuoi ottenere forse è più facile aiutarti.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Sintassi IF corretta in VBA x Excel 2013

Postdi Marius44 » 04/10/16 22:34

Salve a tutti
chiedo scusa se butto lì e scappo ma sto avendo qualche problemino con Internet.

@W&G
Si è vero che vorrebbe una macro ma io ho solo suggerito di utilizzare Se.Errore perchè si gestisce meglio del semplice Se in caso di risultati con errori..

@femon
Per quanto riguarda SE.Errore in VBA nulla di più semplice: cercae nella Guida di VBA WorksheetFunction.IfError, metodo ed hai quello che ti serve.

Concordo con alfrimpa (ciao Alfredo) che sarebbe molto utile "vedere" il tuo file.

Un cordiale saluto a tutti,
Mario
Marius44
Utente Senior
 
Post: 655
Iscritto il: 07/09/15 22:00

Re: Sintassi IF corretta in VBA x Excel 2013

Postdi Anthony47 » 05/10/16 01:37

FORSE
Codice: Seleziona tutto
If IsNumeric(Range("A1")) Then
    If Range("A1") > 0 And Range("B1") > 0 And Range("C1") > 0 Then
        magbox ("Ci siamo")
    End If
End If
Se il codice viene eseguito avendo attivo un foglio diverso da quello di cui parliamo allora esplicita sempre a quale foglio i Range appartengono; tipo
If IsNumeric(Sheets("QualeFoglio").Range("A1")) Then

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Sintassi IF corretta in VBA x Excel 2013":


Chi c’è in linea

Visitano il forum: Gianca532011 e 83 ospiti

cron