+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

Formattare le celle via codice

  1. #1
    Ger
    Ger non è in linea Novello
    Ciao a tutti,

    utilizzo una formula array per visualizzare dei risultati sul foglio excel.
    Ho così una matrice nx3 dove n= righe e 3= colonne.
    Una colonna dovrebbe contenere un formato temporale.
    Per default excel formatta le celle al tipo "General".
    Da codice ho provato ad usare la funzione Format e la cella viene formattata come tempo, ma se da excel volessi cambiare il formato del tempo a questa cella, tramite la dialog "Format Cells", excel non me lo permette. Rimane sempre il formato settato via codice.
    Come si fa a formattare da codice le celle al formato temporale? E poter poi cambiare il formato da excel (dialog "Format Cells")?

    Grazie mille!
    Ger


  2. #2
    L'avatar di Antonello
    Antonello non è in linea Scolaretto
    prova a scrivere
    Selection.NumberFormat = "h:mm:ss;@"

    se non vuoi i secondi togli .ss

  3. #3
    Ger
    Ger non è in linea Novello
    Grazie Antonello,

    avevo già provato NumberFormat e a me sembrava non funzionare perchè vorrei in run time settare il formato tempo delle apposite celle. Ovvero, utilizzando la formula array, se volessi applicare il NumberFormat alla fine (quindi all'interno) della routine che racchiude la stampa su foglio excel della formula array, questa non ha alcun effetto.
    Se viene chiamata invece da una macro alla fine di tutte le operazioni di inserimento della formula allora funziona, ma a me non serve una macro, serve settare il formato temporale in run time.



    Una domanda: a cosa serve @ in "h:mm:ss;@" ?

    Ciao
    Grazie mille

    Ger

  4. #4
    L'avatar di dolcissimo
    dolcissimo non è in linea Scribacchino
    Se devo essere sincero, ancora non capito bene quello che vuoi fare se rispieghi di nuovo in maniera più chiara, sarò lieto di aiutarti.
    ℹ️ Leggi di più su dolcissimo ...

  5. #5
    Ger
    Ger non è in linea Novello
    Ciao Pietro,

    magari non è molto semplice spiegare la situazione senza inserire due righe di codice.
    Mi serve richiamare NumberFormat all'interno della procedura che inserisce la formula array (associata ad una funzione custom) sul foglio excel ovvero:
    inserisco un esempio di codice molto semplificato e commentato (non è in realtà un vero pezzo di codice, diciamo che è il suo scheletro)

    Supponiamo che MyFunction sia la Funzione utente associata ad una formula array

    Public Function MyFunction()
    Dim FormulaArr As Variant
    '....................................
    'FormulaArr è l'array associato alla funzione utente (MyFunction)
    'che contiene i dati (tra cui il tempo) da visualizzare sul foglio excel
     	
    MyFunction = FormulaArr
    
    'Ora Vorrei richiamare una procedura che mi permetta tramite NumberFormat
    'di settare le celle di interesse (i dati temporali dell'array) nel formato temporale
    'ma a questo punto sembra non aver alcun effetto perchè rimane il formato 
    'General in tutte le celle dove è stata inserita la Formula Array
    End Function
    
    Grazie
    Ciao

    Ger

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Formattare Celle Contenute in una Formula
    Da bellouzzo nel forum Microsoft Excel
    Risposte: 3
    Ultimo Post: 25-02-2015, 17:29
  2. Risposte: 6
    Ultimo Post: 09-05-2014, 00:05
  3. Formattare celle in una datagrid utilizzando VB6
    Da misonsan nel forum Visual Basic 6
    Risposte: 5
    Ultimo Post: 01-06-2012, 14:17
  4. Formattare celle EXCEL da VB6
    Da Silverfox63 nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 01-03-2009, 19:38