Calcular descuento en celdas de mi formulario de Microsoft Excel

Hola tengo un formulario en excel el cual quiero que calcule un descuento o un incremento a cada una de las celdas de un rango especifico de hoja el formulario tiene 2 option button uno para subir otro para bajar y un texbox en el cual se coloca el dato para calcular el aumento o descuento el botón tiene el siguiente código
Private Sub cmdcambiar_Click()
Dim subir As String
Dim bajar As String
Dim descuento As Double
subir = optsubir.Value
bajar = optbajar.Value
descuento = txtdescuento.Value
For i = 10 To 23
   If subir = "Verdadero" Then
        Cells(i, 10) = Cells(i, 10) + (Cells(i, 10) * descuento)
        ElseIf bajar = "Verdadero" Then
        Cells(i, 10) = Cells(i, 10) - (Cells(i, 10) * descuento)
  End If
Next i
End Sub
asi el codigo gunciona si las 23 celdas tienen datos pero si en ese rango solo tengo 2 o 3 o 5 me manda error ¿como decirle al FOR que calcule solo cuando encuetre datos se me ocurria algo asi como For i= 10 to x1down pero obvio no funciona ayuda!!!!

1 Respuesta

Respuesta
-1
Bueno te explico, lo que solicitas aparentemente es muy simple, lo que te aconsejo es que en vez de for.. utilices un Do while (hacer mientras que)... quedando de la siguiente forma:
Private Sub cmdcambiar_Click()
Dim subir As String
Dim bajar As String
Dim descuento As Double
subir = optsubir.Value
bajar = optbajar.Value
descuento = txtdescuento.Value
do while not isempty(activecell)
   If subir = "Verdadero" Then
        Cells(i, 10) = Cells(i, 10) + (Cells(i, 10) * descuento)
        ElseIf bajar = "Verdadero" Then
        Cells(i, 10) = Cells(i, 10) - (Cells(i, 10) * descuento)
loop
Esto realizara hasta que encuentra una celda vacía.
Bueno cualquier error o consulta nueva no olvides consultar y te responderé.
End Sub
Hola mil gracias por tu pronta respuesta te comparto que me arroja un erro de "loop sin Do" y si pongo el Do while no deneri ade quitar el Cells (i, 10) por un rango pues ya no hay i
Lo que pasa en que no esta cerrado el "IF". Debes cerrarlo y te funcionara sin problemas
Cerré el if antes del loop obvio y me dice "se ha producido el error 1004 en tiempo de ejecución"
Que hago
Que infomacíón tienes en el combobox.. (cmbcambiar)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas