Da testo a numero



  • Da testo a numero
    di Lucabg data: 13/03/2012

    Io utilizzo dei form come interfaccia di inserimento dati che poi vengono salvati su fogli di lavoro, utilizzo delle texbox per l'iserimento. purtroppo ho un problema quando i dati numerici inseriti nella textbox vengono trasferiti nella cella di destinazione, sono in formato testo questo non mi permette di eseguire successivi calcoli sul foglio di lavoro.
    come faccio a trasferire in formato numerico il dato inserito nella texbox sul foglio di lavoro?
    grazie a chiunque mi darà una mano.
     
    Private Sub CommandButton9_Click() 'paga1
    If usPRFTCAR.txtRC30 = "" Then
        If usPRFTCAR.txtRC7 = "" Then
        MsgBox "MANCANO DATI", vbExclamation
        Exit Sub
        End If
        If usPRFTCAR.txtRC11.Text = "" Then
        MsgBox "MANCA L'IMPORTO DELLA RATA", vbExclamation
        usPRFTCAR.txtRC11.SetFocus
        Exit Sub
        End If
        If usPRFTCAR.txtRC12.Text = "" Then
        MsgBox "MANCA LA DATA DEL PAGAMENTO", vbExclamation
        usPRFTCAR.txtRC12.SetFocus
        Exit Sub
        End If
      If usPRFTCAR.txtRC8.Text = "" Then
      usPRFTCAR.txtRC8.Text = 0
      End If
      If usPRFTCAR.txtRC9.Text = "" Then
      usPRFTCAR.txtRC9.Text = 0
      End If
      'xxxxxxxxxxxxxxxxxxxxxxxxxxxx  calcolo progressivo
      FPR1 = usPRFTCAR.txtRC8.Value
      FPR2 = usPRFTCAR.txtRC11.Value
      FPR3 = FPR1 + FPR2
      usPRFTCAR.txtRC8 = FPR3
      'xxxxxxxxxxxxxxxxxxxxxxxxx calcolo rimanenza
      FPR1 = usPRFTCAR.txtRC7
      FPR2 = usPRFTCAR.txtRC8
      FPR3 = FPR1 - FPR2
      usPRFTCAR.txtRC9 = FPR3
      'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      
      FPR1 = usPRFTCAR.txtRC9.Value
      If FPR1 <= 0 Then
      CHIARO
      VERDE
      Else
      CHIARO
      ROSSO
      End If
      
     usPRFTCAR.txtRC30.Text = "P1"
    
     ActiveCell.Value = usPRFTCAR.txtRC1
     ActiveCell.Offset(0, 1) = usPRFTCAR.txtRC2
     ActiveCell.Offset(0, 2) = usPRFTCAR.txtRC3
     ActiveCell.Offset(0, 3) = usPRFTCAR.txtRC4
     ActiveCell.Offset(0, 4) = usPRFTCAR.txtRC5
     ActiveCell.Offset(0, 5) = usPRFTCAR.txtRC6
     ActiveCell.Offset(0, 6) = usPRFTCAR.txtRC7
     ActiveCell.Offset(0, 7) = usPRFTCAR.txtRC8
     ActiveCell.Offset(0, 8) = usPRFTCAR.txtRC9
     ActiveCell.Offset(0, 9) = usPRFTCAR.txtRC10
     ActiveCell.Offset(0, 10) = usPRFTCAR.txtRC11
     ActiveCell.Offset(0, 11) = usPRFTCAR.txtRC12
     ActiveCell.Offset(0, 12) = usPRFTCAR.txtRC13
     ActiveCell.Offset(0, 13) = usPRFTCAR.txtRC14
     ActiveCell.Offset(0, 14) = usPRFTCAR.txtRC15
     ActiveCell.Offset(0, 15) = usPRFTCAR.txtRC16
     ActiveCell.Offset(0, 16) = usPRFTCAR.txtRC17
     ActiveCell.Offset(0, 17) = usPRFTCAR.txtRC18
     ActiveCell.Offset(0, 18) = usPRFTCAR.txtRC19
     ActiveCell.Offset(0, 19) = usPRFTCAR.txtRC20
     ActiveCell.Offset(0, 20) = usPRFTCAR.txtRC21
     ActiveCell.Offset(0, 21) = usPRFTCAR.txtRC22
     ActiveCell.Offset(0, 22) = usPRFTCAR.txtRC23
     ActiveCell.Offset(0, 23) = usPRFTCAR.txtRC24
     ActiveCell.Offset(0, 24) = usPRFTCAR.txtRC25
     ActiveCell.Offset(0, 25) = usPRFTCAR.txtRC26
    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
     ActiveCell.Offset(0, 50) = usPRFTCAR.txtRC30
     ActiveCell.Offset(0, 51) = usPRFTCAR.txtRC31
     ActiveCell.Offset(0, 52) = usPRFTCAR.txtRC32
     ActiveCell.Offset(0, 53) = usPRFTCAR.txtRC33
     ActiveCell.Offset(0, 54) = usPRFTCAR.txtRc34
     ActiveCell.Offset(0, 55) = usPRFTCAR.txtRC35
     ActiveCell.Offset(0, 56) = usPRFTCAR.txtRC36
     ActiveCell.Offset(0, 57) = usPRFTCAR.txtRC37
     'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    SALVA
    MsgBox "MODIFICA ESEGUITA E SALVATA", vbInformation
    Else
    MsgBox "DATO GIA' INSERITO UTILIZZARE ALTRI INSERIMENTI", vbCritical
    Exit Sub
    End If
    End Sub
    



  • di Locate (utente non iscritto) data: 13/03/2012

    Ciao

    se ai dati in txt e' questi sono valori numerici ma sono riportati in valore testo, basta che adotti una semplice moltiplicazione,
    non ai specificato quele e' il valore ma dalla macro mi sembra che il pezzo incriminato sia questo che ho messo sotto in questo sistema

    activecell.offset(0, 1) = (usprftcar.txtrc2)*1
    activecell.offset(0, 2) = (usprftcar.txtrc3)*1

    ciao da locate
     
     ActiveCell.Value = (usPRFTCAR.txtRC1)*1
     ActiveCell.Offset(0, 1) = (usPRFTCAR.txtRC2)*1
     ActiveCell.Offset(0, 2) = (usPRFTCAR.txtRC3)*1
    



  • di Lucabg (utente non iscritto) data: 14/03/2012

    Ti ringrazio della risposta ma nn funge quando il contenuto della texbox viene trasferito sul foglio rimane in formato testo

     
    Private Sub CommandButton9_Click() 'paga1
    If usPRFTSCAR.txt30FS = "" Then
    
    If usPRFTSCAR.txt7FS = "" Then
     MsgBox "MANCANO DATI", vbExclamation
     Exit Sub
     End If
    If usPRFTSCAR.txt13FS = "" Then
    MsgBox "MANCA L'IMPORTO DELLA RATA", vbExclamation
    usPRFTSCAR.txt13FS.SetFocus
    Exit Sub
    End If
    If usPRFTSCAR.txt14FS = "" Then
     MsgBox "MANCA LA DATA DEL PAGAMENTO", vbExclamation
    usPRFTSCAR.txt14FS.SetFocus
    Exit Sub
    End If
    
    If usPRFTSCAR.txt10FS = "" Then
    usPRFTSCAR.txt10FS = 0
    End If
    If usPRFTSCAR.txt11FS = "" Then
    usPRFTSCAR.txt11FS = 0
    End If
    'assegno alle variabili i valori inseriti nelle texbox inserite nella userform
    'xx calcolo progressivo
    
    FPS1 = usPRFTSCAR.txt10FS.Value
    FPS2 = usPRFTSCAR.txt13FS.Value
    FPS3 = FPS1 + FPS2
    usPRFTSCAR.txt10FS = FPS3
    'assegno alle variabili i valori inseriti nelle texbox inserite nella userform
    'xxxxxxxxxxxxxxxxxxxxxxxxx calcolo rimanenza
    
    FPS1 = usPRFTSCAR.txt7FS.Value
    FPS2 = usPRFTSCAR.txt10FS.Value
    FPS3 = FPS1 - FPS2
    usPRFTSCAR.txt11FS = FPS3
    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    FPS1 = usPRFTSCAR.txt11FS
    If FPS1 <= 0 Then
      CHIARO
      VERDE
      Else
      CHIARO
      ROSSO
      End If
    usPRFTSCAR.txt30FS = "P1"
    'Salvataggio dati inseriti sul foglio di lavoro
    ActiveCell.Value = usPRFTSCAR.txt1FS
     ActiveCell.Offset(0, 1) = usPRFTSCAR.txt2FS
     ActiveCell.Offset(0, 2) = usPRFTSCAR.txt3FS
     ActiveCell.Offset(0, 3) = usPRFTSCAR.txt4FS
     ActiveCell.Offset(0, 4) = usPRFTSCAR.txt5FS
     ActiveCell.Offset(0, 5) = usPRFTSCAR.txt6FS
     ActiveCell.Offset(0, 6) = usPRFTSCAR.txt7FS
     ActiveCell.Offset(0, 7) = usPRFTSCAR.txt8FS
     ActiveCell.Offset(0, 8) = usPRFTSCAR.txt9FS
     ActiveCell.Offset(0, 9) = (usPRFTSCAR.txt10FS) * 1
     ActiveCell.Offset(0, 10) = (usPRFTSCAR.txt11FS) * 1
     ActiveCell.Offset(0, 11) = usPRFTSCAR.txt12FS
     ActiveCell.Offset(0, 12) = usPRFTSCAR.txt13FS
     ActiveCell.Offset(0, 13) = usPRFTSCAR.txt14FS
     ActiveCell.Offset(0, 14) = usPRFTSCAR.txt15FS
     ActiveCell.Offset(0, 15) = usPRFTSCAR.txt16FS
     ActiveCell.Offset(0, 16) = usPRFTSCAR.txt17FS
     ActiveCell.Offset(0, 17) = usPRFTSCAR.txt18FS
     ActiveCell.Offset(0, 18) = usPRFTSCAR.txt19FS
     ActiveCell.Offset(0, 19) = usPRFTSCAR.txt20FS
     ActiveCell.Offset(0, 20) = usPRFTSCAR.txt21FS
     ActiveCell.Offset(0, 21) = usPRFTSCAR.txt22FS
     ActiveCell.Offset(0, 22) = usPRFTSCAR.txt23FS
     ActiveCell.Offset(0, 23) = usPRFTSCAR.txt24FS
     ActiveCell.Offset(0, 24) = usPRFTSCAR.txt25FS
     ActiveCell.Offset(0, 25) = usPRFTSCAR.txt26FS
     ActiveCell.Offset(0, 26) = usPRFTSCAR.txt27FS
     ActiveCell.Offset(0, 27) = usPRFTSCAR.txt28FS
    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
     ActiveCell.Offset(0, 50) = usPRFTSCAR.txt30FS
     ActiveCell.Offset(0, 51) = usPRFTSCAR.txt31FS
     ActiveCell.Offset(0, 52) = usPRFTSCAR.txt32FS
     ActiveCell.Offset(0, 53) = usPRFTSCAR.txt33FS
     ActiveCell.Offset(0, 54) = usPRFTSCAR.txt34FS
     ActiveCell.Offset(0, 55) = usPRFTSCAR.txt35FS
     ActiveCell.Offset(0, 56) = usPRFTSCAR.txt36FS
     ActiveCell.Offset(0, 57) = usPRFTSCAR.txt37FS
    SALVA
    MsgBox "MODIFICA ESEGUITA E SALVATA", vbInformation
    Else
    MsgBox "DATO GIA' INSERITO UTILIZZARE ALTRI INSERIMENTI", vbCritical
    Exit Sub
    End If
    End Sub



  • di Sal (utente non iscritto) data: 14/03/2012

    Ciao, io avevo lo stesso problema e ho risolto in questo modo:

    il contenuto numerico di una textbox doveva essere scaricato, per esempio, nella cella a1
    io ho fatto scaricare il contenuto della textbox nella cella b1 (o in un'altra cella qualsiasi che poi tu nasconderai)
    poi nelle cella a1, dove deve esserci il mio numero della textbox ho inserito la seguente formula:


    =se((b1="");"";valore(b1)

    per far si che non venga lo "zero" quando la textbox è vuota ma risulti la cella vuota.

    o più semplicemente

    =valore(b1)

    però quando la textbox è vuota nella cella a1 ti rimane lo zero

    il questo modo nella cella a1 viene il testo/numero scaricato nella cella b1 in formato numero.

    spero di essere stato chiaro e di esserti stato utile.

    ciao sal
     
               A                  B               C
     ___│________________│___________________│_______
        │                │                   │
    1   │    1.212	     │       1212        │
    2   │(formato n.ro)  │   (formato testo) │
    3   │                │                   │
    4   │                │                   │
    5   │                │                   │
    
    	
    



  • di Lucabg (utente non iscritto) data: 14/03/2012

    Ringrazio tutti per le risposte ho trovato la soluzione rispolverando i vari manuali, utilizzando una funzione cdbl e rtrim di controllo funziona bene, i numeri inseriti nella texbox viengono inseriti nel foglio in formato numerico
    il problema e che se non vengono inseriti numeri cdbl si incavola e va in errore il codice.
    qual'cuno conosce un veloce routine di controllo se nei miei text box vengono inseriti solo numeri e non lettere?
     
    ActiveCell.Value = usPRFTSCAR.txt1FS
     ActiveCell.Offset(0, 1) = usPRFTSCAR.txt2FS
     ActiveCell.Offset(0, 2) = usPRFTSCAR.txt3FS
     ActiveCell.Offset(0, 3) = usPRFTSCAR.txt4FS
     ActiveCell.Offset(0, 4) = CDbl(IIf(RTrim(usPRFTSCAR.txt5FS & "") = "", 0, RTrim(usPRFTSCAR.txt5FS & "")))
     ActiveCell.Offset(0, 5) = CDbl(IIf(RTrim(usPRFTSCAR.txt6FS & "") = "", 0, RTrim(usPRFTSCAR.txt6FS & "")))
     ActiveCell.Offset(0, 6) = CDbl(IIf(RTrim(usPRFTSCAR.txt7FS & "") = "", 0, RTrim(usPRFTSCAR.txt7FS & "")))
     ActiveCell.Offset(0, 7) = usPRFTSCAR.txt8FS
     ActiveCell.Offset(0, 8) = usPRFTSCAR.txt9FS
     ActiveCell.Offset(0, 9) = CDbl(IIf(RTrim(usPRFTSCAR.txt10FS & "") = "", 0, RTrim(usPRFTSCAR.txt10FS & "")))
     ActiveCell.Offset(0, 10) = CDbl(IIf(RTrim(usPRFTSCAR.txt11FS & "") = "", 0, RTrim(usPRFTSCAR.txt11FS & "")))
     ActiveCell.Offset(0, 11) = usPRFTSCAR.txt12FS
     ActiveCell.Offset(0, 12) = usPRFTSCAR.txt13FS
     ActiveCell.Offset(0, 13) = usPRFTSCAR.txt14FS
     ActiveCell.Offset(0, 14) = usPRFTSCAR.txt15FS
     ActiveCell.Offset(0, 15) = usPRFTSCAR.txt16FS
     Active


  • Rmytdtxfhrpfrn
    di Rnexsiwnlnjrm (utente non iscritto) data: 22/03/2012

    I?ll immediately tcuclh your rss feed as i can not in finding your e-mail subscription link or newsletter service. do you've any? kindly let me recognise so that i may just subscribe. thanks.
     
    I?ll immediately tcuclh your rss feed as I can not in finding your e-mail subscription link or newsletter service. Do you've any? Kindly let me recognise so that I may just subscribe. Thanks.