Incrementar el número de rango

Tengo un problema con una macro en excel tengo una hoja de calculo denominada rangos y en lacolumna a tengo el rango inicial y en la columna b el rango final lo que quiero hacer es que el numero de rango inicial se incremente hasta que llegue al rango final
lo que quiero hacer es que se incremente el rango inicial y se inserte en una fila hasta llegar al rango final esto se debe hacer en otra hoja
he hecho una macro pero no se como hacer que se incremente te envío el archivo de los rangos
posición final POSICIÓN FINAL
925128100 925128159
925128160 925128169
925157100 925157119
925157120 925157129
925157200 925157499
925210000 925213273
925213274 925213274
925213275 925216999
925219000 925219063
925219064 925219999
925220000 925221549
925221550 925221550
925221551 925223105
925223106 925223106
925223107 925228566
925228568 925228972
925228973 925228973
925228974 925229999
925230000 925230299
925230300 925230300
925230301 925231859
925231860 925231860
925231861 925232021
925232023 925234487
925234488 925234607
925239000 925239011
925239012 925239012
925239013 925239999
925240000 925240720
925240722 925241670
925241671 925241951
925245000 925245049
925245050 925245050
925245051 925245063
La macro la he hecho así
Sub actualiza()
Dim fila As Integer
Dim i As Integer
Dim x As Double
Dim y As Double
fila = 1
Worksheets("Plantilla").Select
x = Range("b2").Value
y = Range("c2").Value
Worksheets("Actualización").Activate
'ActiveCell.FormulaR1C1 = x
For fila = 1 To 200
'Range("a2").Select
ActiveCell.FormulaR1C1 = x + 1
ActiveSheet.Cells(fila, 1).Value = fila
fila = fila + 1
Next fila
End Sub
2

2 respuestas

Respuesta
1
Estimada: te paso el código a ver si interprete bien tu consulta, te cuento que para que sea más rápida en vez de pasarme a la hoja "Actualización" e insertar filas, hice que los incrementados se cargen en la columna DE y al finalizar la corta y la pasa a la otra hoja
Sub actualiza2()
fila = 1
col = 1
fila_final = 1
  Do While Cells(fila, col) ""
        dif = Cells(fila, col + 1).Value - Cells(fila, col).Value
         If Cells(fila, col) = "" Then Exit Do
         Do While Cells(fila_final, 4) ""
              fila_final = fila_final + 1
         Loop
         For cant = 1 To dif
               Cells(fila_final + cant - 1, 4) = Cells(fila, col).Value + cant
         Next
         Cells(fila_final + dif, 4) = Cells(fila + 1, col)
         fila = fila + 1
Loop
Range("d1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
Worksheets("Actualización").Activate
Range("A1").Select
ActiveSheet.Paste
End Sub
Epero que te halla sido de ayuda, cualquier consulta quedo a las ordenes.
Saludos, y no te olvides de finalizar y evaluar la respuesta.
Hola buenos días muchas gracias por tu ayuda me ha servido de mucho perdona he estado tal liada que no me he dado cuenta de finalizar la pregunta
Respuesta
1
No sé si te he comprendido bien, pero asumo que lo que quieres es generar en la hoja "Actualización" una columna con los números consecutivos que tienen los rangos que constan el la hoja "Plantilla".
He escrito una macro que genera en la hoja "Actualización" los números consecutivos de TODOS los rangos, en un solo paso.
Puedo enviarte el archivo que contiene la macro y los resultados, si me indicas tu correo electrónico.
Sub actualiza()
' Ponemos en la variable nrangos la última fila ocupada de la hoja "Plantilla"
nrangos = Sheets("Plantilla").Range("B2").End(xlDown).Row
' En el caso del ejemplo que me enviaste nrangos va a ser igual a 35
fila = 1 ' Inicializamos la variable fila (asumimos que los números entre rangos van a ocupar
' la fila "A" de la hoja "Actualización" desde la celda fila 2.
' Hacemos un loop de rangos, dede el que está en la fila 2 hasta el que está
' en la fila nrangos (en este caso 35)
For rango = 2 To nrangos
x = Sheets("Plantilla").Range("B" + Format(rango)).Value ' Ponemos en x el rango inicial
y = Sheets("Plantilla").Range("C" + Format(rango)).Value ' Ponemos en y el rango final
' Hacemos el loop para generar en la hoja "Actualización" los números que tiene el rango
For numero = x To y
fila = fila + 1
' Controlamos la máxima fila en 65536 (número de filas de una hoja)
If fila > 65536 Then
MsgBox "Se llegó al final de la hoja Actualización", vbCritical, "Error"
Exit Sub
End If
Sheets("Actualización").Range("A" + Format(fila)) = numero
Next numero
Next rango
End Sub
Muchas gracias por ayudarme te envío mi dirección de correo electrónico (xxxxxx)
Un saludo yalena
Gracias, y es un gusto ayudarte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas