+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Moltiplicare pi textbox

  1. #1
    fabiro77 non  in linea Scolaretto
    Ciao a tutti gli amici del forum,
    riporto di seguito il codice fornitomi dal mitico THE TRUSTER relativamente alla somma algebrica tra pi textbox facenti parte di una matrice.

    Vorrei chiedere ora se mi aiutate a modificare il codice in modo da sostituire la "somma" con la "moltiplicazione".

    GRAZIE INFINITE!!!

    Ecco il codice usato:

    Private Sub Text1_Change(Index As Integer)
    
    Dim Somma As Double, i As Integer
    
    Somma = 0
    
    For i = 0 To Text1.Count - 1
        If IsNumeric(Text1(i).Text) Then
            Somma = Somma + CDbl(Text1(i).Text)
        End If
    Next i
    txtSomma.Text = Somma
    End Sub
    
    Private Sub Text1_LostFocus(Index As Integer)
    If Not IsNumeric(Text1(Index).Text) Then
    Text1(Index).Text = 0
    End If
    Text1(Index).Text = Format(Text1(Index).Text, "#,##0.00")
    End Sub
    
    Private Sub Text1_GotFocus(Index As Integer)
    Text1(Index).SelStart = 0
    Text1(Index).SelLength = Len(Text1(Index).Text)
    End Sub
    
    Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
        Select Case KeyAscii
    
            Case 48 To 57, 8
                Exit Sub
    
            Case 44
                If InStr(1, Text1(Index).Text, ",") > 1 Then
                    KeyAscii = 0
                End If
    
            Case Else
                KeyAscii = 0
    
        End Select
    End Sub
    
    Ultima modifica di TheTruster; 09-06-2007 07:38  Motivo: Mancato utilizzo dei tag [CODE][/CODE]

  2. #2
    AlbertoM non  in linea Scribacchino
    Ciao fabiro77. Ho capito bene ? Tu vuoi fare: txt(0) per txt(1), il risultato per txt(2), e cos via.

    Tuo vecchio codice:
    Somma = 0
    For i = 0 To Text1.Count - 1
      If IsNumeric(Text1(i).Text) Then
        Somma = Somma + CDbl(Text1(i).Text)
      End If
    .........
    
    Se cos prova intanto a sostituire il segno pi con * (= moltiplicatore), partendo per con SOMMA =1 e non a zero.
    E cio:
    Somma = 1
    For i = 0 To Text1.Count - 1
      If IsNumeric(Text1(i).Text) Then
        Somma = Somma * CDbl(Text1(i).Text)
      End If
    ..........
    
    Ultima modifica di AlbertoM; 09-06-2007 00:40 
    ℹ️ Leggi di pi su AlbertoM ...

  3. #3
    fabiro77 non  in linea Scolaretto
    Ciao a tutti,
    volevo spiegarmi meglio:
    ho su una riga 5 textbox (Textbox3(o), Textbox3(1), Textbox3(2), Textbox3(3) e textbox4(o)). La mia esigenza moltiplicare il valore della textbox3(0) con la textbox3(1) e visualizzare il risultato nella textbox4(0).
    Il codice riportato mi crea, ancora una volta, un errore run-time 13 "tipo non corrispondente sulla riga somma cio :Text4(0).Text = Format(CDbl(Text3(0).Text * Text3(1).Text), "#,##0.00"), generato dal fatto che la cella non pu essere vuota.
    Il codice avrebbe bisogno di un ritocchino... Ma ancora una volta non so dove mettere le mani, pertanto mi affido alle vostre

    GRAZIE anticipatamente a tutti!!!!!!


    Private Sub Text3_Change(Index As Integer)
      
    Dim Somma As Double, i As Integer
    
    Somma = 1
    
    For i = 0 To Text3.Count - 1
        If IsNumeric(Text3(i).Text) Then
            Somma = Somma * CDbl(Text3(i).Text)
        End If
    Next i
      
    Text4(0).Text = Format(CDbl(Text3(0).Text * Text3(1).Text), "#,##0.00")
    
    End Sub
    
    
    Private Sub Text3_LostFocus(Index As Integer)
    Text3(Index).BackColor = vbWhite
    If Not IsNumeric(Text3(Index).Text) Then
    Text3(Index).Text = 0
    End If
    Text3(Index).Text = Format(Text3(Index).Text, "#,##0.00")
    End Sub
    
    
    Private Sub Text3_GotFocus(Index As Integer)
    Text3(Index).SelStart = 0
    Text3(Index).SelLength = Len(Text3(Index).Text)
    Text3(Index).BackColor = vbYellow
    End Sub
    
    
    Private Sub Text3_KeyPress(Index As Integer, KeyAscii As Integer)
        Select Case KeyAscii
    
            Case 48 To 57, 8
                Exit Sub
    
            Case 44
                If InStr(1, Text3(Index).Text, ",") > 1 Then
                    KeyAscii = 0
                End If
    
            Case Else
                KeyAscii = 0
    
        End Select
    End Sub
    
    Ultima modifica di TheTruster; 09-06-2007 10:19  Motivo: Macato utilizzo del tag [CODE][/CODE]

  4. #4
    AlbertoM non  in linea Scribacchino
    Oltre alla verifica IsNumeric si deve fare quella if Text1.Text <> "" then , cio se (qualsiasi) stringa da convertire ed usare come numero vuota, non eseguire l'operazione matematica..
    Ciao.
    P.S. Text1.Text un esempio.
    Nel LostFocus del TextBox puoi imporre il fatto che se .Text = "" .Text sia = "0" (zero)
    Ultima modifica di AlbertoM; 09-06-2007 10:24 
    ℹ️ Leggi di pi su AlbertoM ...

  5. #5
    L'avatar di TheTruster
    TheTruster non  in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    mi scuso se mi intrometto nel post.

    fabiro77, impara ad usare i tag [CODE][/CODE] per formattare il codice, altrimenti risulta illeggibile!
    finora ho corretto io i tuoi post, ma non posso farlo in eterno...

    esempio, nel post scrivi:

    [CODE]
    'Qui inserisci
    'tutto il codice
    'che ti serve
    'postare
    [/CODE]

    ed otterrai questo:

    'Qui inserisci
    'tutto il codice
    'che ti serve
    'postare
    
    TheTruster
    ℹ️ Leggi di pi su TheTruster ...

  6. #6
    L'avatar di gibra
    gibra non  in linea Very Important Person

  7. #7
    fabiro77 non  in linea Scolaretto
    Ciao a tutti gli amici del forum,
    ancora una volta vi chiedo perdono... ma proprio non riesco a procedere da solo.


    Nessuno mi dice in che modo correggere il mio codice?
    Ne ho davvero bisogno..

    GRAZIE 1000

  8. #8
    L'avatar di yronium
    yronium non  in linea Scribacchino
    If Not Text3(0).Text = vbNullString And Not Text3(1).Text = vbNullString Then
        Text4(0).Text = Format(CDbl(Text3(0).Text * Text3(1).Text), "#,##0.00")
    Else
        Text4(0).Text = 0
    End If
    

  9. #9
    fabiro77 non  in linea Scolaretto
    Ciao yronium,
    innanzitutto grazie infinite per la tua attenzione.

    MHo provato ad inserire il tuo codice sia nell'evento KeyPress, chge Lost Focus... ma l'errore si verifica comunque.

    Dove devo inserirlo? Devo forse eliminare parte del mio codice?

    GRAZIE!!

  10. #10
    L'avatar di yronium
    yronium non  in linea Scribacchino
    No, devi sostituire la riga singola che hai dentro l'evento Change, questa:
    Text4(0).Text = Format(CDbl(Text3(0).Text * Text3(1).Text), "#,##0.00")
    
    E' questa che ti restituisce l'errore, no? Bene, la devi sostituire con le cinque righe che ti ho postato.

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Moltiplicare Liste e Ripetere il programma
    Da nanni_prippa nel forum Python
    Risposte: 0
    Ultimo Post: 17-02-2017, 19:06
  2. moltiplicare i record di un campo
    Da lalepup nel forum Microsoft Access
    Risposte: 19
    Ultimo Post: 19-05-2016, 07:27
  3. Moltiplicare le H' Ore con i Minuti
    Da Smith nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 08-07-2011, 20:47
  4. Moltiplicare in base a formattazione
    Da leleforno nel forum Microsoft Word
    Risposte: 7
    Ultimo Post: 18-02-2010, 17:42
  5. Access - Moltiplicare due campi
    Da orpo970 nel forum Microsoft Access
    Risposte: 9
    Ultimo Post: 30-10-2008, 18:57