Minimo tra Valori



  • Minimo tra Valori
    di Ale (utente non iscritto) data: 13/09/2016 17:40:41

    Buona sera a tutti, sono un neofita di VBA e in un problema che mi è stato assegnato ho da trovare il minimo tra una colonna di valori, tutti numeri positivi sopra lo 0 (il range di valori è tra A2 e A60), e farlo comparire in una MsgBox, che funzione posso utilizzare?

    Mentre con l'utilizzo della MsgBox ho iniziato a prenderci confidenza, per la prima parte non saprei proprio come fare, avete qualche suggerimento?

    Grazie in Anticipo!



  • di alfrimpa data: 13/09/2016 17:46:37

    Ciao Ale

    Allega un file di esempio con una spiegazione riferita ai dati di quello che vuoi fare/ottenere.

    Comunque con l'istruzione che vedi sotto hai disponibili in VBA (quasi) tutte le funzioni di Excel.

    Alfredo
     
    Application.WorksheetFunction,NomeFunzione(parametri della funzione)






  • di Ale (utente non iscritto) data: 13/09/2016 18:50:08

    Ciao Alfredo
    Grazie della risposta, ho allegato nella discussione, spero correttamente, il file con il testo dell'esercizio, attendo risposta

    Grazie della disponibilità



  • di alfrimpa data: 13/09/2016 19:15:46

    Nel file tu hai scritto

    "Completare questa funzione in modo tale che cerchi il valore minimo tra le celle della colonna A comprese (e incluese) tra la riga indicata dal parametro inizio alla riga indicata dal parametro fine e restituisca il valore calcolato"

    Non riesco a capire questa frase

    "comprese (e incluese) tra la riga indicata dal parametro inizio alla riga indicata dal parametro fine e restituisca il valore calcolato"

    Per determinare il valore minimo dell'intervallo A2: A60 basta scrivere

    = MIN(A2:A60)

    Spiegati meglio.

    Alfredo





  • di Ale (utente non iscritto) data: 13/09/2016 19:25:49

    anch'io ho avuto dubbi su quella parte dell'esercizio (purtroppo non lo ho scritto io, lo ho scaricato), ma la ho intesa come compresi i valori A2 e A60, mentre dopo aver impostato la Dim sul minimo valore, aver utilizzato la funzione da lei indicata, come faccio a far comparire il valore nella MsgBox? la mia idea era così, può andare bene:
    Minimo = MsgBox ("Il valore minimo è: " & MIN"", VbInformation)

    Ma non son sicuro di & MIN, cosa ne pensa?



  • di alfrimpa data: 13/09/2016 20:04:48

    Scusa Ale e perdona questa mia risposta.

    Forse perchè sono un po' all'antica ma se ti è stato dato un esercizio da svolgere (presumo sulla base di un programma svolto) e tu chiedi aiuto su di un forum non equivale a "copiare" il compito?

    Io credo di aver capito ma per il momento mi astengo dal darti la soluzione (eventualmente da migliorare) ed aspetto che tu mostri quello che hai fatto nello scrivere la macro e quali sono le difficoltà che non riesci a superare.

    Se pure ti dessi la macro e qualora usassi istruzioni che non previste dal programma come la metteremmo?

    Alfredo





  • di Ale (utente non iscritto) data: 13/09/2016 20:16:32

    Nessuna offesa, anzi sono d'accordo con lei, ma gli es li ho scaricati dal gruppo dell'università, ma purtroppo lavorando fuori sede, sono riuscito a seguire ben poche lezioni di informatica e mi ritrova con grosse lacune, provo comunque a fare la macro e e vediamo cosa succede

    grazie ancora




  • di scossa data: 13/09/2016 20:27:59

    Ciao,

    Premesso che non si capisce se sia richiesta una soluzione in VBA (udf) od una formula assemblata con le funzioni native di Excel, ci sono alcune incongruenze nel file che hai allegato: manca sia la cella con il parametro inizio sia quella col parametro fine.




    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)



  • di alfrimpa data: 13/09/2016 20:56:24

    Marco non credo possa essere una udf perchè ale parla di MsgBox che non credo, salvo tua correzione, possa essere attivata in una udf (almeno io non ci sono mai riuscito).

    Alfredo





  • di scossa data: 13/09/2016 21:47:49

    cit.: "... MsgBox che non credo, salvo tua correzione, possa essere attivata in una udf ..."

    Certo che si può (anche se non lo farei mai), vedi udf sotto.

    Comunque nel file allegato non viene citato nessun msgbox.


    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.
    (George Bernard Shaw)

     
    Function Quad(ByVal nNum As Long) As Long
      'in una cella scrivere =Quad(3) e premere invio
      Quad = nNum ^ 2
      MsgBox nNum & " elevato al quadrato fa " & Quad
    
    End Function
    



  • di patel data: 14/09/2016 08:53:10

    propongo questa e allego file
     
    Function minimo(inizio As Range, fine As Range) As Integer
    minimo = Application.WorksheetFunction.Min(Range("A" & inizio.Value & ":A" & fine.Value))
    End Function






  • di scossa data: 14/09/2016 09:25:55

    cit. patel: "propongo questa e allego file"

    Ciao patel,

    purtroppo - probabilmente - non hai letto tutta la discussione: trattandosi di un esercizio scolastico/universitario, si stava cercando di non dare la "pappa pronta" ma solo aiutare Ale nel trovare una soluzione per conto suo. Vabbeh!


    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)



  • di patel data: 14/09/2016 12:17:59

    hai ragione, mi questo post

    ...... provo comunque a fare la macro e e vediamo cosa succede





  • di alfrimpa data: 14/09/2016 12:30:32

    AA questo punto dovremo attendere il ritorno di Ale che chissà se si rifarà vivo.

    Alfredo





  • di Ale (utente non iscritto) data: 14/09/2016 12:38:22

    Buongiorno a tutti, intanto grazie per tutti gli aiuti, effettivamente della msgbox non era indicato, quindi ho mandato un e-mail al prof e mi è arrivata in mattinata una risposta, dove mi ha detto che non serve usarla ed è stato quindi un mi errore, scusate per l'informazione sbagliata.


    Non ho ancora avuto il tempo di provare le stringhe che mi avete fornito, appena arrivo a casa che ho il pc le proverò insieme alle indicazioni del professore, spero di riuscire ad aggiornarvi già in serata se è risolto.

    Grazie ancora a tuttI!



  • di alfrimpa data: 14/09/2016 12:53:14

    Veramente nel tuo primo messaggio avevi parlato di msgBox

    "Buona sera a tutti, sono un neofita di VBA e in un problema che mi è stato assegnato ho da trovare il minimo tra una colonna di valori, tutti numeri positivi sopra lo 0 (il range di valori è tra A2 e A60), e farlo comparire in una MsgBox, che funzione posso utilizzare?"

    Alfredo





  • di Ale (utente non iscritto) data: 14/09/2016 13:05:05

    Esatto Alfredo, ma era come io avevo interpretato l'esercizio non essendo specificato nel testo, ma ho sbagliato, non serve la MsgBox mi ha scritto il professore.



  • di alfrimpa data: 14/09/2016 13:48:13

    Allora attendiamo di vedere quello che riesci a fare sempre che i termini dell'esercizio siano ben definiti.

    Alfredo





  • di Ake (utente non iscritto) data: 17/09/2016 11:42:42

    Buongiorno a tutti, vi pubblico il codice che serviva alla fine per risolvere l'esercizio, vi ringrazio per tutta la disponibilità e gentilezza che mi avete offerto e se nella preparazione dell'esame avrò ancora dei dubbi mi rivolgerò di certo qua!

    Grazie e gentili saluti!


     
    Function esercizio1(inizio As Integer, fine As Integer) As Integer
        'Completare questa funzione in modo tale che calcoli il valore minimo tra le celle della colonna A comprese (e incluse) tra la riga indicata
        'dal parametro inizio alla riga indicata dal parametro fine e restituisca il valore calcolato
        
        Dim i As Integer
        Dim min As Integer
    
        min = Cells(inizio, 1).Value
        For i = inizio To fine
    
            If Cells(i, 1) < min Then
                min = Cells(i, 1)
            End If
        Next i
    
        esercizio1 = min
    
    
    End Function
    



  • di scossa data: 17/09/2016 13:41:17

    cit.: "vi pubblico il codice che serviva alla fine per risolvere l'esercizio"

    hummm .... tu sei sicuro che l'esercizio chiedesse proprio questo e che quello che hai scritto non sia una tua interpretzione?

    Potresti postare il testo reale od un link al testo dell'esercizio.



    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.
    (George Bernard Shaw)



  • di patel data: 17/09/2016 15:47:48

    si tratta dei soliti esercizi scolastici che non hanno aderenza alla realtà, una funzione del genere non serve a niente.





  • di Ale (utente non iscritto) data: 20/09/2016 10:42:53

    Buongiorno scossa,
    Il file excel che ho pubblicato in uno dei primi messaggi è proprio quello che ci ha pubblicato il prof sul sito dell'uni, non è una mia interpretazione ne ho modificato alcune parti, l'unica altra parte che non vi ho mandato è un modulo aggiuntivo da utilizzare per la verifica, ma non serve al fine dell'esercizio.