Excel e gli applicativi Microsoft Office Formula in MsgBox

Login Registrati
Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
  • Autore
    Articoli
  • #7385 Score: 0 | Risposta

    thunder
    Partecipante

      Ciao,

      vorrei inserire la seguente formula in un MsgBox :

      =(MAX(A:N)-SOMMA.SE(Foglio1!C:C;"<>pippo";Foglio1!G:G))

      ho provato così:

      Sub formula()
      MsgBox Evaluate("(MAX(A:N)-SOMMA.SE(Foglio1!C:C;"<>pippo";Foglio1!G:G))")
      
      
      
      End Sub

       ma da errore di compilazione. Dove sbaglio?

       

      Grazie in anticipo

      #7388 Score: 0 | Risposta

      Marius44
      Moderatore
        58 pts

        Ciao

        che io sappia quanto inserito in una MsgBox è una Stringa e, quindi, non può fare calcoli.

        L'errore sta in quel Evaluate.

        Ciao,

        Mario

         

        #7391 Score: 0 | Risposta

        thunder
        Partecipante

          ho visto in rete che formule semplici tipo

          MsgBox Evaluate("Sum(A1:A30)")

          vengono eseguite senza errori. La mia è un po' più complessa ma forse con la sintassi giusta si riesce  

          #7396 Score: 0 | Risposta

          albatros54
          Moderatore
            89 pts

            thunder wrote:complessa ma forse con la sintassi giusta si riesce

            prova a sostituire  la funzione Somm.se con Sumif, e poi da errore sul fatto che pippo è tra apici, e con gli apici precedenti il vba non riesce a capire

             

            Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
            Sempre il mare, uomo libero, amerai!
            ( Charles Baudelaire )
            #7412 Score: 0 | Risposta

            vecchio frac
            Senior Moderator
              272 pts

              Albatros ha ragione: le formule vanno tradotte in inglese.

              Prendi la formula di cui sopra, incollala in una cella qualsiasi e vedi se funziona.

              Poi vai in finestra immediata, digita

              ?activecell.formula

              Ti compare la medesima formula, scritta in inglese:

              =(MAX(A:N)-SUMIF(Foglio1!C:C,"<>pippo",Foglio1!G:G))

              Adesso togli il segno di uguale, mettici una parentesi quadra aperta e chiudila alla fine dell'espressione. Questo è quello che devi passare al tuo Msgbox:

              msgbox [(MAX(A:N)-SUMIF(Foglio1!C:C,"<>pippo",Foglio1!G:G))]

              #7413 Score: 0 | Risposta

              thunder
              Partecipante

                ho sostituito ma da come risultato la formula solo come testo.

                Per adesso ho risolto inserendo la SOMMA.SE in una cella distinta del foglio ed operando così:

                Sub Messaggio()
                MsgBox  Evaluate("Sum(MAX(A:N)-SUM(Foglio1!L2))")
                End Sub

                 

                #7414 Score: 1 | Risposta

                vecchio frac
                Senior Moderator
                  272 pts

                  thunder wrote:ma da come risultato la formula solo come testo

                  Ma in un msgbox compare sempre un testo, cosa altro dovrebbe apparire?

                  Se poi desideri, converti in un qualsiasi altro tipo:

                  dim valore as double
                  valore = Cdbl([(MAX(A:N)-SUMIF(Foglio1!C:C,"<>pippo",Foglio1!G:G))])
                  msgbox valore

                  Ma anche così otterrai sempre un testo nella finestra di messaggio.

                  Le parentesi quadre stanno al posto di Evaluate, ma non devi smazzarti con gli apici. Altrimenti è ovvio che devi prevedere di raddoppiare le virgolette per ogni virgoletta che deve entrare in una stringa, ed è facile confondersi.

                  #7416 Score: 0 | Risposta

                  thunder
                  Partecipante

                    No volevo dire che nel MsgBox compariva proprio la formula!

                    Comunque così funziona grazie  

                    #7417 Score: 0 | Risposta

                    thunder
                    Partecipante

                      PS: Fracaf mi accorgo adesso che non avevo visto la tua seconda risposta ecco perchè non tornava

                    Login Registrati
                    Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
                    Rispondi a: Formula in MsgBox
                    Gli allegati sono permessi solo ad utenti REGISTRATI
                    Le tue informazioni: