You are here:Home-Domande su Formule e Funzioni-Funzione UDF che restituisce #VALORE!
Funzione UDF che restituisce #VALORE!2021-09-24T16:37:13+02:00

Home Forum Domande su Formule e Funzioni Funzione UDF che restituisce #VALORE!

Taggato: 

Visualizzazione 1 filone di risposte
  • Autore
    Post
    • Avataralessio0
      Partecipante
        Post totali: 35

        Buongiorno. Non capisco dove sbaglio. ScontoBase è vuoto o contiene un numero, ScontoConvenzione è vuoto o contiene un numero, EsclusaConvenzione è vuoto o contiene un simbolo (Es: “X”). applico la funzione nel seguente modo: =fScontoApplicato(P6; Q6; T6) e restituisce sempre restituisce #VALORE!

        Grazie

        Alessio

         

        Option Explicit
        Private Function fScontoApplicato(ScontoBase As Long, ScontoConvenzione As Long, EsclusaConvenzione As String) As Long
        If ScontoBase = “” And ScontoConvenzione = “” Then
        fScontoApplicato = “”

        ElseIf ScontoBase <> “” And ScontoConvenzione = “” Then
        fScontoApplicato = ScontoBase

        ElseIf ScontoBase = “” And ScontoConvenzione <> “” And EsclusaConvenzione = “” Then
        fScontoApplicato = ScontoConvenzione
        ElseIf ScontoBase = “” And ScontoConvenzione <> “” And EsclusaConvenzione <> “” Then
        fScontoApplicato = “”

        ElseIf ScontoBase <> “” And ScontoConvenzione <> “” And EsclusaConvenzione <> “” Then

        If ScontoBase > ScontoConvenzione Then
        fScontoApplicato = ScontoBase
        ElseIf ScontoBase < ScontoConvenzione Then
        fScontoApplicato = ScontoConvenzione
        ElseIf ScontoBase = ScontoConvenzione Then
        fScontoApplicato = ScontoConvenzione
        End If

        Else
        fScontoApplicato = “”

        End If
        End Function

      • BySalvBySalv
        Amministratore del forum
          Post totali: 885

          Ciao Alessio, posso solo supporre che i vari parametri che gli passi siano numeri e non altro, senza un file d’esempio, comunque ho modificato un poco la tua macro togliendo il tipo di variabile, lasciando solo la stringa, le restanti ci pensa Excel, vedi se funziona.

          Comunque una Funzione dovrebbe essere pubblica oppure la usi solo su un determinato foglio

          ecco il codice

          Function fScontoApplicato(ScontoBase, ScontoConvenzione, EsclusaConvenzione As String)
          If ScontoBase = "" And ScontoConvenzione = "" Then
            fScontoApplicato = ""
          
          ElseIf ScontoBase <> "" And ScontoConvenzione = "" Then
            fScontoApplicato = ScontoBase
          
          ElseIf ScontoBase = "" And ScontoConvenzione <> "" And EsclusaConvenzione = "" Then
            fScontoApplicato = ScontoConvenzione
          ElseIf ScontoBase = "" And ScontoConvenzione <> "" And EsclusaConvenzione <> "" Then
            fScontoApplicato = ""
          
          ElseIf ScontoBase <> "" And ScontoConvenzione <> "" And EsclusaConvenzione <> "" Then
          
            If ScontoBase > ScontoConvenzione Then
              fScontoApplicato = ScontoBase
            ElseIf ScontoBase < ScontoConvenzione Then
              fScontoApplicato = ScontoConvenzione
            ElseIf ScontoBase = ScontoConvenzione Then
              fScontoApplicato = ScontoConvenzione
            End If
          
          Else
            fScontoApplicato = ""
          End If
          End Function

          Ciao By Sal (8-D

          Ciao By Sal (8-)
          se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

      Visualizzazione 1 filone di risposte
      • Devi essere connesso per rispondere a questo topic.