Necesito una macro con formulario para ingresar correlativos

Debo ingresar mediante un formulario artículos seriados, necesito una macro con formulario para ingresar un rango de series y que la macro me escriba en la hoja todas las series correlativas, por ejemplo:

Tengo 500 articulos con la serie 004VA000001 hasta la serie 004VA000500, yo quisiera ingresar en un formulario el inicio y el fin de la serie y que la macro me escriba el correlativo completo en una columna determinada, osea:

004VA000001

004VA000002

004VA000003

... Hasta

004VA000500

Respuesta
2

En la imagen puedes ver el resultado de la macro y como esta construido el formulario, la numeración ocurren en A2 hasta A502 en este caso, en los textbox1 tu indicas a partir de que numero va ser el consecutivo y en el textbox hasta donde se detendrá

y esta es la macro que tienes que pegar después de crear el formulario con dos textbox y un commandbutton

Private Sub CommandButton1_Click()
 INICIO = Val(TextBox1.Text)
 FIN = Val(TextBox2.Text)
RANGO = ("A2" & ":A" & FIN)
 Range("A2").Value = "004VA00000" & INICIO
 Range("A2").AutoFill Destination:=Range(RANGO), Type:=xlFillDefault
End Sub

Hola, gracias por tu ayuda. La macro funciona perfectamente. ¿Podría hacerse que los 6 últimos números se mantengan siempre en 6 dígitos, es decir que por más que se incrementen siempre sean 6 dígitos después de 004VA?

Agradeceré tu ayuda.

otro punto es que sobreescribe los datos, y yo necesito que adicione datos a la lista sin borrar los datos anteriores.

Prueba con esta macro

Private Sub Frame1_Click()
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub CommandButton1_Click()
INICIO = Val(TextBox1.Text)
FIN = Val(TextBox2.Text)
RANGO = "A" & INICIO & ":a" & FIN
CADENA = "004VA" & Format(INICIO, "000000")
FILAS = Range("A1").CurrentRegion.Rows.Count
If FILAS = 1 Then
    Range("a" & FILAS).Value = CADENA
    Range("A" & FILAS).AutoFill Destination:=Range(RANGO), Type:=xlFillDefault
Else
    RESTA = FIN - INICIO
    RANGO = "A" & FILAS + 1 & ":A" & FILAS + RESTA + 1
    Range("a" & FILAS + 1).Value = CADENA
    Range("A" & FILAS + 1).AutoFill Destination:=Range(RANGO), Type:=xlFillDefault
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas