Condividi tramite

Stile separatore

Anonimo
2014-02-28T17:07:37+00:00

Ciao

Sono alle prime armi con le maschere di excel

Conosco discretamente excel 2007

Ho incominciato a scrivere con vba e fare qualche programmino.

Nella userform1 inserisco dei dati numerici es. 123456,78 dopo invio nella maschera vorrei che siano separate da migliaia, tipo 123.456,78 prima di inserire il 2’ input 3’ e 4’

Sullo stesso userform ho inserito il tasto “ calcola “ e va nella cambia userform 2

Il foglio excel fa tutte le sue operazioni li incolonna con il separatore di migliaia ( 123.456,78 )

Sono 12 righe con 12 Totali , ma nelle cifre, anche in questo userform non mi ritorna il separatore di migliaia e decimali , tipo 123456,78 oppure 123456,787878787878………, mentre nel foglio excel lo fa

Tutto è perfetto , errori , inserisce solo numeri , la stampa , salva i dati etc

Il programmino tratta TFR ( liquidazione ) dal lordo al netto , anticipi imposta pagata , rivalutazioni , fino al 2000 e dal 2001 in poi.

Spero che mi sia spiegato

Gli input sono nella cella d6 d8 d10 d12 d14 dopo l'invio in excel , nelle stesse celle cambia stile separatore 123.456.789,00

ma nella maschera di input non cambia, resta 123456789,00

Nella userform2  nei risultati , li cambia sul foglio excel ma non nella maschera.

Grazie anticipatamente

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2014-02-28T18:05:29+00:00

Ciao

Sono alle prime armi con le maschere di excel

<cut>

Capito quasi nulla.

Se stai scrivendo in una TextBox, le TextBox contengono testo e non valori numerici. Quindi, o formatti il  loro contenuto o, da sole, non ti inseriscono il separatore delle migliaia.

Non esiste di default la possibilità di impostare i separatori delle migliaia (tipo quello che invece fai nelle celle).

Un modo (semi)automatico è intercettare un evento della TextBox, ad esempio:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    Me.TextBox1.Text = Format(Me.TextBox1.Text, "#,###.00")

End Sub

Se inveci passi dati alla TextBox da una cella o da un altro controllo, devi sempre formattare il valore se vuoi vederlo con i separatori delle migliaia:

Me.TextBox1.Text = Format(Riferimento_Cella/Controllo, "#,###.00")

Nota la formattazione, che deve tener conto che vb *ragiona* in *americano*.

La risposta è stata utile?

0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-02-28T21:42:46+00:00

    Grazie per la risposta

    Risolto con il foglio excel in parte , solo maschera userform2 output

    cella (A10) risultato formula messo (Stile separatore) "000" era già così

    cella (B11)    " fisso=(A10;2) "

    Textbox richiama B11 si vede in formato 123.456.789,xx

    Ora nel userform1  nell'input ( inserimento dati ) textbox 3 - 4 - 5 - 6 - 7

    cercherò come aggirare , per fare diventare il numero inserito 123456789,xx  in 123.456.789,xx subito dopo invio

    Domani vedrò come fare

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-02-28T18:05:25+00:00

    Ciao

    Sono alle prime armi con le maschere di excel

    Conosco discretamente excel 2007

    Ho incominciato a scrivere con vba e fare qualche programmino.

    ... 

    Ciao,

    è necessario tenere ben a mente che le textbox - dal nome stesso - contengono sempre e solo testo, indipendentemente dai separatori che puoi digitare. Non è presente lo stesso automatismo delle celle, che è in grado di capire se stiamo digitando un numero, una data ecc.

    La gestione e l'utilizzo del 'testo' digitato in una textbox è a tuo totale carico. Se essa contiene un numero ed in particolare se vi sono dei decimali, è necessario, prima di utilizzarlo convertirlo in un 'vero' numero utilizzando funzioni quali VAL(), o una delle funzioni di conversione del tipo CSNG(). CDBL() ecc. (leggi l'help per maggiori informazioni e fai attenzione ai separatori).

    Viceversa, per visualizzare in una textbox il risultato di un calcolo numerico, formattandolo secondo le tue necessità, potrai utilizzare la funzione FORMAT().

    Ti ricordo infine che il VBA, utilizza sempre quale separatore decimale il punto.

    Per concludere: digitato un valore in una textbox, se lo vuoi ri-visualizzare in formato numerico formattato, è necessario:

    • accertarsi che sia effettivamente un numero con la funzione ISNUMERIC(), per esempio;
    • assegnarlo ad una viabile numerica, se deve essere utilizzato nei calcoli, a tal proposito vedi l'utilizzo di VAL() e le funzioni di conversione del tipo che lavorano su separatori decimali diversi;
    • formattare la variabile numerica precedente nel formato desiderato utilizzando la funzione FORMAT() ed utilizzando quest'ultimo per rappresentarlo nuovamente nella textbox.

    Andrea.

    La risposta è stata utile?

    0 commenti Nessun commento