Duda Macro
Hola buen día, quiero ver si me puedes ayudar con una macro, es simple solo que es la primera vez que programo una.
Tengo un problema con el Do-While, es una macro en la que tengo un botón de "asignar" que cada que pongo un número en una celda el botón lo verifica con las condiciones "if" y de acuerdo a su valor le da una respuesta y le suma 1 a un contador, el problema es que debo limitar a 50 operaciones y quiero usar el Do-While para hacerlo, pero al ponerlo cuando uso el botón hace 51 operaciones sin parar y yo quiero que solo me haga una por cada número introducido y al llegar el contador a 50 ya no realice más operaciones (lo cual hace pero quiero evitar que haga las 50 operaciones corridas), te adjunto mi macro, espero me puedas ayudar.
Sub Asignar()
Do
If Range("J7") >= 1 Then
If Range("J7") <= 5 Then
Range("J16") = "Tomar la Ruta 1"
Range("G22").Select
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(1, 0).Select
End If
End If
If Range("J7") >= 6 Then
If Range("J7") <= 10 Then
Range("J16") = "Tomar la Ruta 2"
Range("G22").Select
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(1, 0).Select
End If
End If
If Range("J7") >= 11 Then
If Range("J7") <= 15 Then
Range("J16") = "Tomar la Ruta 3"
Range("G22").Select
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(1, 0).Select
End If
End If
If Range("J7") >= 16 Then
If Range("J7") <= 20 Then
Range("J16") = "Tomar la Ruta 4"
Range("G22").Select
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(1, 0).Select
End If
End If
If Range("J7") >= 21 Then
If Range("J7") <= 25 Then
Range("J16") = "Tomar la Ruta 5"
Range("G22").Select
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(1, 0).Select
End If
End If
If Range("J7") = "" Then
Range("J16") = "Introduce un número"
End If
Range("G22").Select
ActiveCell.Offset(1, 0).Select
Loop While Range("G22") <= 49
End Sub
Tengo un problema con el Do-While, es una macro en la que tengo un botón de "asignar" que cada que pongo un número en una celda el botón lo verifica con las condiciones "if" y de acuerdo a su valor le da una respuesta y le suma 1 a un contador, el problema es que debo limitar a 50 operaciones y quiero usar el Do-While para hacerlo, pero al ponerlo cuando uso el botón hace 51 operaciones sin parar y yo quiero que solo me haga una por cada número introducido y al llegar el contador a 50 ya no realice más operaciones (lo cual hace pero quiero evitar que haga las 50 operaciones corridas), te adjunto mi macro, espero me puedas ayudar.
Sub Asignar()
Do
If Range("J7") >= 1 Then
If Range("J7") <= 5 Then
Range("J16") = "Tomar la Ruta 1"
Range("G22").Select
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(1, 0).Select
End If
End If
If Range("J7") >= 6 Then
If Range("J7") <= 10 Then
Range("J16") = "Tomar la Ruta 2"
Range("G22").Select
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(1, 0).Select
End If
End If
If Range("J7") >= 11 Then
If Range("J7") <= 15 Then
Range("J16") = "Tomar la Ruta 3"
Range("G22").Select
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(1, 0).Select
End If
End If
If Range("J7") >= 16 Then
If Range("J7") <= 20 Then
Range("J16") = "Tomar la Ruta 4"
Range("G22").Select
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(1, 0).Select
End If
End If
If Range("J7") >= 21 Then
If Range("J7") <= 25 Then
Range("J16") = "Tomar la Ruta 5"
Range("G22").Select
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(1, 0).Select
End If
End If
If Range("J7") = "" Then
Range("J16") = "Introduce un número"
End If
Range("G22").Select
ActiveCell.Offset(1, 0).Select
Loop While Range("G22") <= 49
End Sub
1 Respuesta
Respuesta de Juan Carlos González Chavarría
1