varias texto sumar separadas repetidas palabras numeros letras datos conteo contar con como celdas cantidad excel vba excel-vba textbox

separadas - sumar celdas con texto y numeros en excel



¿Cómo puedo sumar valor en 8 cuadros de texto al cuadro de texto único? (2)

Usted (probablemente) no desea sumar los valores de sus cuadros de texto cuando alguien intenta cambiar el valor en el cuadro de totales; desea sumarlos cuando cambia un valor en cualquiera de los otros ocho cuadros.

La forma más sencilla de hacerlo es, probablemente, crear una macro simple para sumar los valores de los cuadros de texto, y luego invocarla desde los eventos de cambio del 8 que el usuario puede cambiar.

La macro para sumar los cuadros de texto y ponerlos en el cuadro de totales

Private Sub sum_boxes() txtTotal = CLng(txtKas.Value) + CLng(Investasi.Value) + CLng(DanaTerbatas.Value) End Sub

Qué evento de cambio se verá

Private Sub txtKas_Change() Call sum_boxes End Sub

Debe realizar un evento de cambio para cada una de las ocho casillas, como se mencionó anteriormente.

En una nota completamente diferente, usar una caja de texto para almacenar el total puede ser una mala idea, ya que no quiere que sus usuarios cambien lo que contiene. Una opción es bloquear el cuadro de texto, como sugiere PatricK, otro es usar un objeto diferente para contener el número, por ejemplo, una etiqueta, y simplemente cambiar su título para que sea similar a lo que sea su total en este momento.

No puedo encontrar una manera de hacer esto. Creo que es una pregunta muy básica, pero soy nuevo con Excel VBA y no puedo encontrar la fórmula correcta.

Recientemente, entiendo que para hacer la suma, primero tengo que cambiar cada textbox en entero, luego puedo agregarlo a un solo textbox , así que estoy convirtiendo cada valor en un entero mientras los sumo uno a uno en un texto caja.

He intentado este código.

Private Sub txtTotal_Change() txtTotal.Value = CInt(txtKas) + CInt(txtInvestasi) + CInt(txtDanaTerbatas) + CInt(txtBruto) + ... End Sub

¿Cómo puedo sumar estos múltiples cuadros de texto (8 cuadros de texto) en un solo cuadro de texto?


Debe agregar Eventos de cambio en sus cuadros de texto que son modificables por el usuario.

Digamos que tengo a continuación UserForm y TextBox1 a TextBox3 :

TextBox3 será la suma de TextBox1 y TextBox2.

Haga clic con el botón secundario en UserForm1 en Project y seleccione View Code , luego coloque el TextBoxSSum Sub (uso Double type para aceptar decimales):

Private Sub TextBoxesSum() Dim Total As Double Total = 0 If Len(TextBox1.Value) > 0 Then Total = Total + CDbl(TextBox1.Value) If Len(TextBox2.Value) > 0 Then Total = Total + CDbl(TextBox2.Value) '' Add more for the rest of your text boxes TextBox3.Value = Total End Sub

Para que sea seguro e inteligente, también debe ingresar la verificación clave de la entrada del usuario. Debido a la cantidad de cuadros de texto que tiene, es mejor tener una función para manejarlo:

Private Function NumericOnly(ByVal KeyAscii As MSForms.ReturnInteger) As MSForms.ReturnInteger Dim Key As MSForms.ReturnInteger Select Case KeyAscii Case 46, 48 To 57 '' Accept only decimal "." and numbers [0-9] Set Key = KeyAscii Case Else KeyAscii = 0 '' Minor bug earlier Set Key = KeyAscii End Select Set NumericOnly = Key End Function

Ahora, volviendo al objeto UserForm1, haga clic con el botón derecho en TextBox1 y Ver código , ingrese:

Private Sub TextBox1_Change() TextBoxesSum End Sub

También revise el evento KeyPress:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) KeyAscii = NumericOnly(KeyAscii) End Sub

Ahora copie arriba de 2 conjuntos de TextBox Sub y pegue a continuación, luego reemplace la cadena antes de subrayar para que coincida con el nombre de los cuadros de texto que tiene.

Muestra de salida: