Macro para enumerar deacuerdo a un numero de inicio, y uno de final

Tengo esta macro que amablemente Dante, me proporciono, anduve tratando de modificarla para que enumere deacuerdo a un numero de inicio, y un numero de final, pero solo poniendo numero de inicio menor al de final es que funciona (cuando la solicite no me explique mejor, error mio) pero, como podria hacerle para que si pongo un numero digamos 40 (seria el de inicio), y me enumere al numero 1 (final), pero de igual manera, tambien pueda enumerar si pongo que me enumere progresivamente, como lo hace ya la macro, y si me explicaran cada linea que es lo que hace (mucho pedir creo), y no se por que, esta macros para algunos datos, por ejemplo he querido enumerar del 5 al 25, salta el mensaje el numero inicial debe ser menor al inicial, si si cumple esa condicion al introducir esos datos, de antemano gracias y espero no molestar por pedir ayuda, aclaro que si intente, pero no logre mi cometido por el momento

Sub Numerar()
'Por.Dante Amor
ini = Application.InputBox("Escribe el número inicial", "NUMERAR", ActiveCell, 8)
If ini = False Then Exit Sub
If Not IsNumeric(ini) Then Exit Sub
fin = Application.InputBox("Escribe el número Final", "NUMERAR")
If fin = False Then Exit Sub
If Not IsNumeric(fin) Then Exit Sub
If fin < ini Then
MsgBox "El número final debe se mayor al inicial", vbExclamation, "NUMERAR"
Exit Sub
End If
'
For i = ini To fin
ActiveCell.Offset(n, 0) = i
n = n + 1
Next
End Sub

1 respuesta

Respuesta
3

H o l a:

Te anexo la macro actualizada para numerar hacia adelante o hacia atrás, también esta corregida la parte del 5 al 25.

Sub Numerar()
'Por.Dante Amor
    ini = Application.InputBox("Escribe el número inicial", "NUMERAR", ActiveCell, 8)
    If ini = False Then Exit Sub
    If Not IsNumeric(ini) Then Exit Sub
    fin = Application.InputBox("Escribe el número Final", "NUMERAR")
    If fin = False Then Exit Sub
    If Not IsNumeric(fin) Then Exit Sub
    '
    ini = CDbl(ini)
    fin = CDbl(fin)
    If fin < ini Then m = -1 Else m = 1
    '
    For i = ini To fin Step m
        ActiveCell.Offset(n, 0) = i
        n = n + 1
    Next
End Sub

¡Gracias!  Dante, es muy amable de su parte en atender mi pregunta, funciono!!!, le agradezco que sin conocer a las personas que aquí preguntamos, permite le robemos de su tiempo, y su conocimiento gracias de nuevo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas