Estrarre risultato da macro



  • Estrarre risultato da macro
    di gerbera (utente non iscritto) data: 28/09/2016 01:20:09

    Ciao a tutti,

    vorrei capire come all fine di una serie di operazioni posso estrarre fuori il risultato inserendo questo in una msgbox. Mi spiego meglio: in Prompt:" il risultato è: ...." vorrei il numero ottenuto grazie alle operazioni scritte nella macro al posto dei puntini.

    come faccio dirgli che al posto dei puntini voglio il risultato? e come faccio a fargli capire che l'ultima operazione fatta è il risultato?? Spero di essere stata chiara.. scusate ma sono proprio alle prime armi!!!

    Grazie milleeeeeeeee



  • di Luca73 data: 28/09/2016 08:52:21

    Ciao
    la tua domanda mi lascia molto perplesso.
    Stai usando le macro pertanto dovresti sapere come si usano le variabili.

    Per Scrivere un msgbox che ti dica "il risultato è" e aggiungere il risultato allora dei concatenare delle stringhe e per fare tale operazione si usa l'operatore &
    pertanto se scrivo
    pippo="Num" & "ero" & 3
    pippo vale Numero3

    analogamente devi fare per crearti il messaggio che sia il testo del msgbox.

    Riguardo all'altra richiesta, VBA procede dall'alto verso il basso ovvero dalla prima istruzione dopo Sub.... in avanti pertanto l'ultima operazione è qulella più in basso o, in caso di cicli, quella più in basso dell'ultimo ciclo.

    Ti ho scritto alcuni spunti per aiutarti a capire. per risoluzioni e suggerimenti più mirati dovresti allegare il tuo lavoro contenente la macro in questione.
    Ciao

    Luca





  • di Cucù data: 28/09/2016 08:57:41

    Provo a risponderti:
    Assegni ad una variabile il valore dell'ultima operazione fatta
    esempio:
    X = Cells(1, 1).value 'Ponendo il caso che il risultato finale che vuoi ottenere sia nella cella A1

    'dopodichè

    MsgBox "Il risultato è " & X & " !"

    Cucù




  • di gerbera (utente non iscritto) data: 02/10/2016 14:52:24

    grazie mille ci sono riuscita!!! :)

    Adesso però ho un nuovo problema, vorrei crearne un'altra leggermente diversa. Vi spiego: anzichè avere un solo filtro, nell'esempio sotto è la colonna W, ne ho due: COLONNA T deve essere diverso da 0, colonna W uguale a 0.
    Ecco, quando ho questi due filtri nelle due colonne, voglio sapere la media della colonna V.
    Cosa devo aggiungere sotto? grazie mille a chi mi darà una mano ci sto provando ma mi dice errore!
     
    Sub Macro3()
    '
    ' Macro3 Macro
        Dim iCount As Integer, iGiorni As Integer
        iCount = 0
        iGiorni = 0
        Sheets("Foglio1").Select
        Range("W24").Select
        For i = 1 To 1000
            If ActiveCell.Value <> "" Then
                iCount = iCount + 1
                ActiveCell.Offset(0, 3).Select
                iGiorni = iGiorni + ActiveCell.Value
                ActiveCell.Offset(1, -3).Select
            Else
                ActiveCell.Offset(1, 0).Select
            End If
        Next
        sAverage = iGiorni / iCount
        Sheets("Foglio2").Select
    MsgBox Buttons:=vbOKOnly, Prompt:="La media è: " & sAverage
    End Sub



  • di patel data: 02/10/2016 15:34:18

    non disponendo del file è difficile capire cosa sbagli, però puoi avviare la macro con F8 e controllare ad ogni passo il valore delle variabili posizionandoci il mouse sopra e quindi capire cosa succede





  • di Luca73 data: 03/10/2016 09:43:19

    Ciao
    Concordo perfettamente con quanto scrive patel (che saluto caramente)
    che è la stesso cosa che ti avevo chiesto anche io all'inizio. Allega un file.

    Comunque giusto per darti un aiuto alla cieca, esistono gli operatori Booleani And, or, not
    Che permettono di verificare più condizioni

    per esempio
    if (condizioneA and (not (condizioneB))) then
    verrà eseguita se la condizione a è vera e quella B è falsa

    If (range("A1")="" and Range("B1")=3) verrà eseguita se range A1 è vuoto e il range B1 vale 3.

    ti ricordo che gli operatori di comparazione sono
    = uguale
    >maggiore, < minore
    >= maggiore uguale <= minore uguale
    <> diverso

    Penso che ora ai tutte le info per fare quello che ti serve.

    Ciao
    Luca