Saltar al contenido

Bucle muestra valores no deseados y su posición incorrecta en la fila


Recommended Posts

publicado

DUDA. Adjunto Código. Tengo casi tres semanas de trabajar en este proyecto para aprender.

El usuario al digita el primer valor en C2, entonces A2 muestra la fecha de Hoy. Luego digita un valor

en B2, este valor solo se escribe una vez al ingresar el primer dato en C2.

Luego el usuario digita un valor en E2 y da clic a botón Run que calcula valores en D2 y F2, pero,

muestra en B3 muestra el valor de B2 + 1, que no debe ocurrir.

El botón Run, también, debe mostrar en la fila 5 (no en la 4) los totales de las columnas C,D,E y F. Así, cada

ves que se digita un valor en C la fila con los totales se va incrementado en 1 hacia abajo.

La Fila de Totales también debe mostar la fecha de hoy, como se indica en la Hoja2.

La idea es que E2 se vaya incrementando en 1 cada vez que da clic al botón run, sin embargo, eso no ocurre.

La Hoja1 muestra lo que ocurre al digitar en Rango C dos valores (5000 y 8250). En Hoja2 se muestra lo que el código debe hacer.

He dedicado muchas horas a tratar de solucionar este inconveniente, incluso, con manuales, forum, Youtube y tampoco no he podido encontrado alguna pista. Adjunto archivo excel

Agradezco la ayuda que me puedan dar. Saludos

:(

Private Sub cmbRun_Click()
Dim i As Integer
Dim lngRC As Long

Const clngSTART As Long = 2500

i = 2
Application.EnableEvents = False
Do While Cells(i, 3).Value > 0
Cells(i, 4).Value = (Cells(i, 3).Value * 0.13)
Cells(i, 6).Value = Cells(i, 3).Value + Cells(i, 4).Value + Cells(i, 5).Value
i = i + 1
Loop
Dim LastRow As Long
LastRow = Range("C" & Rows.Count).End(xlUp).Row
Range("D2:D" & LastRow).Formula = "=C2*0.13"
Range("F2:F" & LastRow).Formula = "=SUM(C2:E2)"
' Agrega totales en linea 4
Range("C" & LastRow + 2 & ":F" & LastRow + 2).FormulaR1C1 = "=SUM(R2C:R[-2]C)"

With Range("B2")
If .Value = "" Then .Value = clngSTART
End With

For lngRC = 3 To Range("C" & Rows.Count).End(xlUp).Row
'En fila 3 Suma 1 a B2. En celda 4 suma 1 al valor anterior Esta instrucción debe correr solo al digitar un registro en el Range C
Cells(lngRC, "B").Value = Cells(lngRC - 1, "B").Value + 1
Next lngRC

Application.EnableEvents = True

End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then Cells(Target.Row, 1) = Now()
End Sub
[/CODE]

LFFC_Test3.zip

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.