Visual Basic - Error 13 al correro en Windows 10

Life is soft - evento anual de software empresarial
 
Vista:

Error 13 al correro en Windows 10

Publicado por pedro (1 intervención) el 23/10/2018 00:05:26
hola. tengo un problema con este codigo en windows7 office 2016 corre bien pero cuando traigo a la pc windows 10 mismo office me da el error 13 a que se debe.: esto haciend un formulario.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Private Sub txt_Cantidad_Change()
Dim Fila As Integer
Dim Final As Integer
Dim antes As Integer
Dim ahora As Double
Dim saldo As Double
 
Dim totalimporte As Double
 
For Fila = 1 To Final
            If ComboBox1 = Hoja3.Cells(Fila, 1) Then
                Me.txt_Stock = Hoja3.Cells(Fila, 3)
                antes = Hoja3.Cells(Fila, 3)
                ahora = Me.txt_Cantidad
 
                saldo = antes - ahora
                Me.txt_Saldo = saldo
                Exit For
            End If
    Next
 
    totalimporte = Val(Me.txt_Cantidad) * Me.txt_PreciodeVenta ' aqui me marca el error "13" 
    Me.txt_Importe.Text = totalimporte
    Me.txt_Importe.Text = Format(totalimporte, "$##,##0.00")
 
    saldo = Val(Me.txt_Cantidad) - Me.txt_Stock
    Me.txt_Saldo.Text = saldo
 
 
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Error 13 al correro en Windows 10

Publicado por Antoni Masana (565 intervenciones) el 23/10/2018 10:43:16
Le doy un vistazo y me sorprenden varias cosas, primero el tipo de error y su localización

El error 13 en Visual Basic Advance (VBA) se presenta cuando no hay coincidencia entre la variable que se declara y la variable que se ejecuta. Puesto que cada variable en Excel posee determinadas características y propiedades, al no coincidir los tipos , Excel lo asume como un error en tiempo de ejecución al cual denomina error número 13 “No coinciden los tipos”

De este código hay varias cosas que no entiendo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Private Sub txt_Cantidad_Change()
    Dim Fila As Integer
    Dim Final As Integer
    Dim antes As Integer
    Dim ahora As Double
    Dim saldo As Double
 
    Dim totalimporte As Double
 
    For Fila = 1 To Final
        If ComboBox1 = Hoja3.Cells(Fila, 1) Then
            Me.txt_Stock = Hoja3.Cells(Fila, 3)
            antes = Hoja3.Cells(Fila, 3)
            ahora = Me.txt_Cantidad
 
            saldo = antes - ahora
            Me.txt_Saldo = saldo
            Exit For
        End If
    Next
 
    totalimporte = Val(Me.txt_Cantidad) * Me.txt_PreciodeVenta ' <--- aqui me marca el error "13" 
    Me.txt_Importe.Text = totalimporte
    Me.txt_Importe.Text = Format(totalimporte, "$##,##0.00")
 
    saldo = Val(Me.txt_Cantidad) - Me.txt_Stock
    Me.txt_Saldo.Text = saldo
End Sub

1.- La variable Final ¿Cuanto vale? por que su valor es cero y el bucle del FOR no se ejecuta.

2.- Que tipo de contenido tiene Me.txt_Cantidad, He de suponer que es un objeto TextBox.

3.- Que tipo de contenido tiene Me.txt_PreciodeVenta , He de suponer que es un objeto TextBox.

4.- Si el objeto Me.txt_Saldo.Text se actualiza en la línea 27. ¿Qué sentido asignarle un valor en la línea 17?

Viendo lo que hace, creo que con estas dos líneas se hace lo mismo y más simple, además hay que añadir el .Text a los objetos.

1
2
3
4
Private Sub txt_Cantidad_Change()
    Me.txt_Importe.Text = Format(Val(Me.txt_Cantidad.Text) * Me.txt_PreciodeVenta.Text, "$##,##0.00")
    Me.txt_Saldo.Text  = Val(Me.txt_Cantidad.Text) - Me.txt_Stock.Text
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar