Desbordamiento en Macro

Solicito de su colaboración para saber por qué al ejecutar esta macro me arroja error en la linea que aparece subrayada y con negrita. Mil gracias por su oportuna y pronta colaboración.
Beatriz
Private Sub CommandButton1_Click()
Rem inserta un renglon
Selection.EntireRow.Insert
Rem Empty Limpia Los Textbox
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty
TextBox6 = Empty
Rem Textbox1SetFocus Envia el cursor al Textbox1 para volver a capturar los datos
TextBox1.SetFocus
End Sub
Private Sub TextBox1_Change()
Range("a9").Select
ActiveCell.FormulaR1C1 = Val(TextBox1)
End Sub
Private Sub TextBox2_Change()
Range("b9").Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub
Private Sub TextBox3_Change()
Range("c9").Select
ActiveCell.FormulaR1C1 = Val(TextBox3)
End Sub
Private Sub TextBox4_Change()
Range("d9").Select
ActiveCell.FormulaR1C1 = Val(TextBox4)
TextBox5 = Val(TextBox4) / Val(TextBox3)
End Sub
Private Sub TextBox5_Change()
Range("e9").Select
ActiveCell.FormulaR1C1 = Val(TextBox5)
Rem aquí se crea la Formula
TextBox6 = Val(TextBox3) * Val(TextBox4)
End Sub
Private Sub TextBox6_Change()
Range("f9").Select
ActiveCell.FormulaR1C1 = Val(TextBox6)
TextBox6 = Val(TextBox3) * Val(TextBox4)
End Sub

1 respuesta

Respuesta
1
No veo ninguna línea subrayada ni en negrita.
Si veo que tenés una última rutina, que se ejecuta al cambio en el textbox6
Pero dentro de esta misma rutina estás acumulando un valor a ese control, por lo que siempre está cambiándose
No sé muy bien que hará tu proceso pero tenés que buscar otro evento u otro momento para volcar el resultado de la suma.
Que pena Doña Elsa, el renglón que me arroja error ahora si es el que esta subrayado y en negrita
Private Sub CommandButton1_Click()
Selection.EntireRow.Insert
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty
TextBox6 = Empty
TextBox1.SetFocus
End Sub
Private Sub TextBox1_Change()
Range("a9").Select
ActiveCell.FormulaR1C1 = Val(TextBox1)
End Sub
Private Sub TextBox2_Change()
Range("b9").Select
ActiveCell.FormulaR1C1 = TextBox2
End Sub
Private Sub TextBox3_Change()
Range("c9").Select
ActiveCell.FormulaR1C1 = Val(TextBox3)
End Sub
Private Sub TextBox4_Change()
Range("d9").Select
ActiveCell.FormulaR1C1 = Val(TextBox4)
TextBox5 = Val(TextBox4) / Val(TextBox3)
End Sub
Private Sub TextBox5_Change()
Range("e9").Select
ActiveCell.FormulaR1C1 = Val(TextBox5)
Rem aquí se crea la Formula
TextBox6 = Val(TextBox3) * Val(TextBox4)
End Sub
Private Sub TextBox6_Change()
Range("f9").Select
ActiveCell.FormulaR1C1 = Val(TextBox6)
End Sub
Como estás utilizando evento Change (Cambio en contenido del control), 1 rutina se relaciona con la otra y así varias situaciones pueden darte error.
Como Textbox5 es el resultado de una división, verificá el valor que tomaron los controles 4 y especialmente el 3
Cuando salta el error, presioná Depurar y colocá el cursor en cada argumento de la línea para observar el valor que tienen. Esto te dará una mejor idea de porqué el error.
Luego, el control 4 envía un resultado al control 5, se está produciendo un cambio en el 5 que a su vez tiene una rutina que ejecuta otra cosa ... y así.
Colocá puntos de interrupción en cada rutina, en las líneas que te dejo en negrita para que vayas viendo los valores que toman los distintos argumentos de las fórmulas, y de paso vas viendo cuándo se ejecuta cada subrutina.
Private Sub TextBox3_Change()
Range("c9").Select
ActiveCell.FormulaR1C1 = Val(TextBox3)
End Sub
Private Sub TextBox4_Change()
Range("d9").Select
ActiveCell.FormulaR1C1 = Val(TextBox4)
TextBox5 = Val(TextBox4) / Val(TextBox3)
End Sub
Private Sub TextBox5_Change()
Range("e9").Select
ActiveCell.FormulaR1C1 = Val(TextBox5)
' aquí se crea la Formula
TextBox6 = Val(TextBox3) * Val(TextBox4)
End Sub
Private Sub TextBox6_Change()
Range("f9").Select
ActiveCell.FormulaR1C1 = Val(TextBox6)
Sdos
Elsa

REcién leí tu comentario sobre los manuales en consulta anterior.
Desde tu país están optando por los correos MoneyGram y WesternUnion, el primero con cargos más accesibles creo.
La mitad de los gs corren por mi cuenta, por lo que solo me tenés que enviar 40 - 3 dól = 37 dól por 1 manual. Por la compra de 2 de ellos, te descuento el total de gs que quedan enteramente a mi cargo.
Escribime al correo que encontrarás en mi sitio y así me explayo un poco más en los detalles.
Sdos
Elsa mil gracias por la información, ya encontré el error y lo pude solucionar. Muchas gracias.
Por lo del libro, estaremos en contacto, ¿yo le escribo para cuadrar bien lo de la compra vale?
Beatriz

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas