Salve volevo sapere come fare a convertire un numero in un testo in excel, so che la funzione diretta non esiste ma in vb qualcosa si potrà fare?Però io di vb non so niente quindi dovrete essere molto espliciti![]()
es. 1000--->mille
David
Salve volevo sapere come fare a convertire un numero in un testo in excel, so che la funzione diretta non esiste ma in vb qualcosa si potrà fare?Però io di vb non so niente quindi dovrete essere molto espliciti![]()
es. 1000--->mille
David
Dovresti scriverti tu una funzione vba, ma se proprio non ai esperienza di programmazione non e' banalissimo...
Come traccia potresti iniziare da destra a leggere il numero, per esempio:
Poniamo che il numero sia
187.532
In pseudo-codice:
Esegui
Leggo il primo carattere a destra
Scrivo la stringa corrispondente ("due" in questo caso)
aggiungo alla stringa scritta la stringa indicante la posizione ("cento" se la posizione e' la terza da destra, "mila" se e' la quarta ecc..., - Ovviamente si devono gestire le eccezioni come "mille" ecc...)
Ripeti fin quando finisci i caratteri
Codificarlo in VB non e' difficile, ma, ti ripeto, se non hai esperienza potresti anche perderci qualche notte di troppo.
Buona fortuna.
![]()
ChReAn
-------------------
Slackware 9.1 powered
grazie del consiglio.Però è strano che non ci sia una funzione già predefinita.
cmq ciao e grazie ancora
David
questo è un semplice esempio (traduce solo numeri di TRE cifre [000...999]) in Visual Basic :
Per provarlo ti servono:codice:Option Explicit Dim n As String Private Sub Command1_Click() Dim i As Integer i = 1 'CATTURO IL NUMERO INSERITO IN TEXT1 n = Text1.Text ' UNA CIFRA If Len(n) = 1 Then Call unita(i) ' DUE CIFRE ElseIf Len(n) = 2 Then If Mid(n, i, 1) <> 1 Then Call decine(i) i = i + 1 Call unita(i) Else Call decine(i) End If ' TRE CIFRE ElseIf Len(n) = 3 Then If Mid(n, i, 1) <> 1 Then Call unita(i) Text2 = Text2 & "CENTO" i = i + 1 If Mid(n, i, 1) <> 1 Then Call decine(i) i = i + 1 Call unita(i) Else Call decine(i) End If ' OLTRE LIMITE MASSIMO CONSENTITO (da continuare) Else Text2.Text = "MASSIMO TRE CIFRE [999]" End If End Sub Sub unita(i) If Mid(n, i, 1) = 1 Then Text2 = Text2 & "UNO" ElseIf Mid(n, i, 1) = 2 Then Text2 = Text2 & "DUE" ElseIf Mid(n, i, 1) = 3 Then Text2 = Text2 & "TRE" ElseIf Mid(n, i, 1) = 4 Then Text2 = Text2 & "QUATTRO" ElseIf Mid(n, i, 1) = 5 Then Text2 = Text2 & "CINQUE" ElseIf Mid(n, i, 1) = 6 Then Text2 = Text2 & "SEI" ElseIf Mid(n, i, 1) = 7 Then Text2 = Text2 & "SETTE" ElseIf Mid(n, i, 1) = 8 Then Text2 = Text2 & "OTTO" ElseIf Mid(n, i, 1) = 9 Then Text2 = Text2 & "NOVE" End If End Sub Sub decine(i) If Mid(n, i, 1) = 1 And Mid(n, i + 1, 1) = 0 Then Text2 = Text2 & "DIECI" ElseIf Mid(n, i, 1) = 1 And Mid(n, i + 1, 1) = 1 Then Text2 = Text2 & "UNDICI" ElseIf Mid(n, i, 1) = 1 And Mid(n, i + 1, 1) = 2 Then Text2 = Text2 & "DODICI" ElseIf Mid(n, i, 1) = 1 And Mid(n, i + 1, 1) = 3 Then Text2 = Text2 & "TREDICI" ElseIf Mid(n, i, 1) = 1 And Mid(n, i + 1, 1) = 4 Then Text2 = Text2 & "QUATTORDICI" ElseIf Mid(n, i, 1) = 1 And Mid(n, i + 1, 1) = 5 Then Text2 = Text2 & "QUINDICI" ElseIf Mid(n, i, 1) = 1 And Mid(n, i + 1, 1) = 6 Then Text2 = Text2 & "SEDICI" ElseIf Mid(n, i, 1) = 1 And Mid(n, i + 1, 1) = 7 Then Text2 = Text2 & "DICIASSETTE" ElseIf Mid(n, i, 1) = 1 And Mid(n, i + 1, 1) = 8 Then Text2 = Text2 & "DICIOTTO" ElseIf Mid(n, i, 1) = 1 And Mid(n, i + 1, 1) = 9 Then Text2 = Text2 & "DICIANNOVE" ElseIf Mid(n, i, 1) = 2 Then If Mid(n, i + 1, 1) = 1 Or Mid(n, i + 1, 1) = 8 Then Text2 = Text2 & "VENT" Else Text2 = Text2 & "VENTI" End If ElseIf Mid(n, i, 1) = 3 Then If Mid(n, i + 1, 1) = 1 Or Mid(n, i + 1, 1) = 8 Then Text2 = Text2 & "TRENT" Else Text2 = Text2 & "TRENTA" End If ElseIf Mid(n, i, 1) = 4 Then If Mid(n, i + 1, 1) = 1 Or Mid(n, i + 1, 1) = 8 Then Text2 = Text2 & "QUARANT" Else Text2 = Text2 & "QUARANTA" End If ElseIf Mid(n, i, 1) = 5 Then If Mid(n, i + 1, 1) = 1 Or Mid(n, i + 1, 1) = 8 Then Text2 = Text2 & "CINQUANT" Else Text2 = Text2 & "CINQUANTA" End If ElseIf Mid(n, i, 1) = 6 Then If Mid(n, i + 1, 1) = 1 Or Mid(n, i + 1, 1) = 8 Then Text2 = Text2 & "SESSANT" Else Text2 = Text2 & "SESSANTA" End If ElseIf Mid(n, i, 1) = 7 Then If Mid(n, i + 1, 1) = 1 Or Mid(n, i + 1, 1) = 8 Then Text2 = Text2 & "SETTANT" Else Text2 = Text2 & "SETTANTA" End If ElseIf Mid(n, i, 1) = 8 Then If Mid(n, i + 1, 1) = 1 Or Mid(n, i + 1, 1) = 8 Then Text2 = Text2 & "OTTANT" Else Text2 = Text2 & "OTTANTA" End If ElseIf Mid(n, i, 1) = 9 Then If Mid(n, i + 1, 1) = 1 Or Mid(n, i + 1, 1) = 8 Then Text2 = Text2 & "NOVANT" Else Text2 = Text2 & "NOVANTA" End If End If End Sub
due textbox (text1 e text2)
e
un commandButton (command1)
leggere il flusso del programma, mi sembra abbastanza facile,
ovviamente va incrementato.
P.S. visto che cerchi di farlo in VB o VBA, ti sposto sul forum specifico...
...Terrible warlords, good warlords, and an english song
Moderatori.... per questo io propongo la pillola! :metallica :metallica :metallica :metallica
Ciao!
per questo ho una piccola applicazione che che fa proprio al caso tuo!
restituisce i numero il lettere fino al 999.999.999 che mi sembra già una gran cosa!
se può interessarti ancora mandami un messaggio in pvt, e via mail ti potrò spedire il sorgente!
ciao Giano
Originariamente inviato da davfrata
Salve volevo sapere come fare a convertire un numero in un testo in excel, so che la funzione diretta non esiste ma in vb qualcosa si potrà fare?Però io di vb non so niente quindi dovrete essere molto espliciti![]()
es. 1000--->mille
David
va bene meditare a lungo su cosa scrivere ma questa domanda l'ha fatta il 24-11-2003 non credi abbia trovato la soluzione o ci abbia rinunciato? e comunque se vuoi proporre degli scambi in privato trattane in privatoOriginariamente inviato da giano118
Ciao!
per questo ho una piccola applicazione che che fa proprio al caso tuo!
restituisce i numero il lettere fino al 999.999.999 che mi sembra già una gran cosa!
se può interessarti ancora mandami un messaggio in pvt, e via mail ti potrò spedire il sorgente!
ciao Giano
Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te