formula in macro



  • formula in macro
    di ludagi data: 19/03/2015 14:59:09

    come si scrive in una macro questa condizione :

    se SOMMA(SE((D2:D3000=O17)*(E2:E3000="A");F2:F3000;0))-SOMMA(SE((D2:D3000=O17)*(E2:E3000="v");F2:F3000;0))<>0 then

    ................


    else

    ................

    endif

    grazie a chi risponde






  • di Vecchio Frac data: 19/03/2015 21:00:03

    Ma ti funziona? Quel "< > 0" finale dopo la seconda SOMMA mi perplime...
    Spieghi a parole tue cosa dovrebbe fare la formula?





  • di Vecchio Frac data: 19/03/2015 21:01:39

    Ah ok, scusa, ho capito adesso che quel "< > 0" vorrebbe far parte della condizione VBA e non fa parte della formula Excel...
    Cioè se le due somme sono diverse da zero allora ... altrimenti ...
    Un giorno mi daranno un premio solo per la capacità di interpretare tutti i miei utenti ^_^





  • di Vecchio Frac data: 19/03/2015 21:29:04

    Io la tradurrei così.
    Una ricerca nel range per trovare le righe che contengono il valore di O17 nella colonna D, e sommare i valori in F se in E si trova A quindi sommare i valori se in E si trova v e quindi calcolare la differenza.
    Più difficile da descrivere che a scrivere :)
     
    Option Explicit
    
    Sub sommatoria()
    Dim somma As Long, first_found As String, cell As Range
    
        With Range("D2:D3000")
            Set cell = .Find(Range("O17"), LookIn:=xlValues)
            If Not cell Is Nothing Then
                first_found = cell.Address
                Do
                    If cell.Offset(, 1) = "A" Then somma = somma + cell.Offset(, 2)
                    If cell.Offset(, 1) = "v" Then somma = somma - cell.Offset(, 2)
                    Set cell = .FindNext(cell)
                Loop While Not cell Is Nothing And cell.Address <> first_found
            End If
        End With
    
        If somma <> 0 Then
            MsgBox "La differenza delle somme di A e V corrispondenti a " & Range("O17") & " è " & somma
        Else
            MsgBox "La differenza delle somme di A e V corrispondenti a " & Range("O17") & " è zero."
        End If
        
    End Sub
    






  • di ludagi data: 20/03/2015 08:10:50

    grazie....

    chiedevo solo la traduzione della formula nel linguaggio (inglese) per poterla inserire in una macro



  • di Vecchio Frac data: 20/03/2015 08:25:50

    cit. "chiedevo solo la traduzione della formula nel linguaggio (inglese) per poterla inserire in una macro"
    ---> o.O Non era esattamente chiaro dal tuo primo post...
    Comunque è una formula matriciale, e non sono sicuro che si possa scrivere correttamente con .FormulaLocal = "=..." o con Evaluate().







  • di ludagi data: 20/03/2015 11:27:47

    ok...........