Sig



  • Sig
    di Umberto (utente non iscritto) data: 19/04/2011

    Salve a tutti, sono un autodidatta, ed uso il vba di excel per fare dei piccoli programmini per amici. mi trovo nella situazione di dover utilizzare dei dati da un archivio (es foglio1) con tre colonne (descr, conto,importo) dove descr e conto sono testi........vorrei usare una function che utilizza come argomenti descr e conto, ed in base a questi somma i vari importi per farne poi un conto sintetico in un altro foglio. ho provato con una semplice funzione numerica e me lo fa, ma appena ci metto due argomenti ed uso le stringhe mi da problemi, non mi fa nulla oppure mi mette sempre 0 come importo......mi potete aiutare?



  • di Mdepi (utente non iscritto) data: 19/04/2011

    Ciao!
    potresti essere più chiaro, magari allegando il codice della function o facendo un esempio?


  • Sig
    di Umberto (utente non iscritto) data: 19/04/2011

    Il codice ancora non è stato scritto. ma il problema è questo. io devo utilizzare dei dati che vengono messi in un foglio (foglio1) su queste colonne: sezione, mastro, conto, importo.
    le prime tre sono testo e l'ultima è valuta. io devo poter (con codice vba e utilizzando una function) estrarre le varie voci, e se si ripetono devo sommare gli importi e riscriverlii in un foglio2 come conto sintetico. esempio sul primo foglio ci sono diverse voci con scritto (es.) tesseramento, con vari importi, io devo poter sommare le varie voci con scrito tesseramento e riportare il testo con una sommatoria degli importi. siccome non so quali testi e quali voci verranno immessi nel foglio1, dovrei inserire una function che legge una voce e se ne trova altre le somma..........


  • Riassunti
    di Alparud (utente non iscritto) data: 20/04/2011

    Non servono function vba
    puoi usare somma.se(....) vedi la guida.

    =somma.se($a$2:$b$9;e3;$b$2:$b$9)

    a2:b9 è la tua zona dove inserisci i dati

    e3 è la cella dove è presente la voce da sommare

    b2:b9 è la zona dove excel deve effettuare la somma



  • Riassunti
    di Alparud (utente non iscritto) data: 20/04/2011

    Somma.se è molto potente e risolve parecchi problemi.

    se non è chiaro, mandami un tuo indirizzo mail.
    ti mando, in allegato, un file excel di esempio.



  • Sig.
    di Umberto (utente non iscritto) data: 20/04/2011

    Grazie,
    ma gia conosco la funzioner insita in excel, ma io volevo usare il codice vba per fare in modo che non ci siano inconvenienti con formule cancellate per caso. invece usando un pulsante e mettendoci dentro dell routine in codice questo rischio è superato........
    ecco il perche chiedevo di poter usare delle function generate da me, e da inserire nel codice


  • Pulsante
    di Alparud (utente non iscritto) data: 21/04/2011

    Per evitare cancellazioni accidentali puoi proteggere il foglio lasciando libere solo le zone di input utente.

    formato / celle / protezione / blocca

    e poi:

    strumenti / proteggi foglio

    comunque, se proprio vuoi scrivere codice vba, mi viene in mente cells(riga, colonna)







     
    For Riga = RigaInizio To RigaFine
           If Cells(Riga, ColonnaVoci).Value = "Rimborso" Then
                     Totale = Totale + Cells(Riga, ColonnaImporti)
           End If
    Next Riga
    


  • Vba
    di Alparud (utente non iscritto) data: 21/04/2011

    Ecco un function provata adesso.

    inserisci la function in un modulo

    sull'evento click del pulsante puoi mettere:

    sheets(2).range("m20").value = calcola("versamento")
     
    Function Calcola(QualeVoce As String) As Double
    Dim Riga%, Totale#
    
        Totale = 0
        For Riga = 1 To 20
            If Cells(Riga, 1).Value = QualeVoce Then
                Totale = Totale + Cells(Riga, 2).Value
            End If
        Next Riga
        Calcola = Totale
        
    End Function


  • Vba
    di Alparud (utente non iscritto) data: 21/04/2011

    Vedi in allegato il file excel completo con il pulsante.
    spero di esserti stato utile.

    quando fai click puoi scegliere la voce da sommare.
    il totale, nell'esempio viene messo nel foglio2.