Funzione Max in Macro



  • Funzione Max in Macro
    di Giovanni50 (utente non iscritto) data: 07/01/2014 21:15:07

    Buonasera a tutti.
    Come posso usare la funzione Max(Foglio3!A10:Foglio3!A70)
    in una macro con risultato messo in
    una variabile.
    La funzione e' utilizzata in una routine for next.
    Ho provato il suggerimento della guida in linea
    Ma ottengo err. di compilazione previsto end sub.
    Attendo cortesemente risposta. Grazie.
     
    Il codice usato e' il seguente :
    For I_2 =1 to Elem_tab
    Temp8 = whorksheet(1).cells(a,8)
    If condizione then
    C=c+1
    Sub UseFunction()
     Dim myRange As Range
     Set myRange = Worksheets("Sheet3").Range("H70:H129)
     Max_1 = Application.WhorksheetFunction.Max(myRange)
    End Sub
    End If
    Next
    End Sub



  • di scossa data: 08/01/2014 09:45:37

    Ma nel tuo codice c'è scritto proprio:
    Set myRange = Worksheets("Sheet3").Range("H70:H129)

    senza i doppi apici dopo H129?
    Set myRange = Worksheets("Sheet3").Range("H70:H129")



  • di Giovanni50 (utente non iscritto) data: 08/01/2014 10:10:54

    Si tratta di una dimenticanza.Ci sono gli
    apicini anche in chiusura.Grazie del tuo
    interessamento.



  • di scossa data: 08/01/2014 10:21:31

    Ok, ma NON HAI MESSO il codice
    Sub UseFunction()
    Dim myRange As Range
    Set myRange = Worksheets("Sheet3").Range("H70:H129)
    Max_1 = Application.WhorksheetFunction.Max(myRange)
    End Sub

    All'interno di un'altra sub VERO?



  • di Giovanni50 (utente non iscritto) data: 08/01/2014 10:34:28

    Si certo,si tratta di una subroutine annidata
    In un'altra subroutine



  • di scossa data: 08/01/2014 10:42:59

    cit.: "Si certo,si tratta di una subroutine annidata
    In un'altra subroutine"

    Non esiste proprio di poter fare una cosa del genere, non puoi annidare il codice di una sub all'interno di un'altra.

    La struttura deve essere del tipo sotto indicato.
    Ovviamente, senza vedere il codice completo, dubito che possa "funzionare", visto che Max_1 non so come sia definita e che visibilità abbia .....
     
    Public Sub MiaSubA()
    '.....
    Call UseFunction
    '.......
    End Sub
    
    
    Sub UseFunction()
     Dim myRange As Range
     Set myRange = Worksheets("Sheet3").Range("H70:H129")
     Max_1 = Application.WhorksheetFunction.Max(myRange)
    End Sub



  • di Giovanni50 (utente non iscritto) data: 08/01/2014 14:33:04

    Grazie per la cortesia.
    Rimettendo le routine apposto come suggerito
    Mostra errore di run-time 9
    Indice non incluso nell'intervallo.
    Perche'?



  • di scossa data: 08/01/2014 19:38:18

    Posta TUTTO il codice.

    P.S.: dire che ti da un errore senza precisare quale istruzione lo genera non serve a molto.



  • di Giovanni50 (utente non iscritto) data: 18/01/2014 14:45:04

    Grazie per la disponibilita
    Dopo vari tentativi non ne venivo a capo di usare la funzione
    Che mi calcola il valore max delle celle h12:h120.
    Ho deciso,con successo, di costruirmi una sub utilizzando
    Dei cicli for next combinati con delle if.
    Il suggerimento dato da errore di run time 438 proprieta o metodo
    Non supportati dall' oggetto, alla riga :
    Set myRange = WhorksheetFunction("Sheet3").Range("H12:H120")