Problema formato date Excel/VBA

di il
1 risposte

Problema formato date Excel/VBA

Ciao a tutti ho un problema con il formato delle date in VBA.

nello specifico il mio obiettivo è utilizzare la funzione SUMIF direttamente da VBA tuttavia quando "leggo" una data da una cella viene interpretata dal sistema scambiando mesi e giorni (per esempio 7/3/2012 viene letto come 3 luglio 2012) e il risultato del SommaSE non è corretto.
qui sotto un esempio di codice:

Dim data, data_tgt, ammontare as range
dim output as double

Set data = Range(Cells(1, 1), Cells(10, 1)) ' date che dovrò confrontare nel SUMIF
set ammontare = range(Cells(1, 2), Cells(10, 2)) ' ammontare da sommare
set data_tgt = range ( Cells(1, 3)) ' data per condizione

output = Application.WorksheetFunction.SumIf(data,"<="&data_tgt(1,1),ammontare)



Uso Excel 2010, sia le formule di Excel che di VBA sono in Inglese ed il formato data impostato su Excel è quello italiano.

mi sapreste aiutare??
Grazie

1 Risposte

  • Re: Problema formato date Excel/VBA

    Le celle gestiscono il dato tramite due proprietà: Text e Value:
    - Text è quello che vedi a video, quindi la data può essere in italiano: GG/MM/AAAA
    - Value è il valore reale interno, che è sempre in formato americano: MM/GG/AAAA

    per ottenere il testo:
    Range(Cells(1, 1), Cells(10, 1)).Text
    per ottenere il valore
    Range(Cells(1, 1), Cells(10, 1)).Value
    a mio avviso ogni manipolazione, calcolo, ecc. va sempre fatto utilizzando la proprietà Value, perchè la proprietà Text può essere formattata in n modi, è non è affidabile.
Devi accedere o registrarti per scrivere nel forum
1 risposte