Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    convertire un numero in un testo

    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

  2. #2
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    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

  3. #3
    grazie del consiglio.Però è strano che non ci sia una funzione già predefinita.
    cmq ciao e grazie ancora
    David

  4. #4
    questo è un semplice esempio (traduce solo numeri di TRE cifre [000...999]) in Visual Basic :
    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
    Per provarlo ti servono:
    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

  5. #5
    grazie del codice ciao david

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    58
    Moderatori.... per questo io propongo la pillola! :metallica :metallica :metallica :metallica

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    205

    Re: convertire un numero in un testo

    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

  8. #8

    Re: Re: convertire un numero in un testo

    Originariamente 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
    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 privato
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.