Generar un autocódigo en macros de excel

Estoy haciendo una macros en la cual ingreso datos de clientes, como nombre, dni, teléfono, etc, a través de un formulario, donde los textbox se copian a celdas especificas en la hoja "CLIENTES".

El código me funciona bien, pero necesito generar un código que al momento de apretar el botón "agregar", en la hoja CLIENTES, me genere un código de clientes, el cual es un número correlativo.

Por ejemplo:

Fila 1= codigo clientes 1001
Fila 2= codigo clientes 1002
Fila 3= codigo clientes 1003
Y así sucesivamente, cuando se agregan nuevos clientes.

Estaba pensando en hacer un módulo y llamar la función desde mi formulario.

logré hacer esto:

Sub cod_clientes()
'buscar numero mayor
Dim mayor As Integer
Dim mayor1 As Integer
Dim ultima As Integer
mayor1 = 1
mayor = 2
Set h = Sheets("CLIENTES")
For i = 7 To h.Range("B" & Rows.Count).End(xlUp).Row
If mayor < Cells(fila, 4).Value Then
mayor = Cells(fila, 4).Value
mayor1 = mayor
End If
ultima = i
Next
Cells(ultima, 4).Value = mayor + 1
End Sub

Pero se produce un error en el IF.

Ojalá me puedan ayudar con alguna idea.

Respuesta

Tardes o noches.

1) No veo de donde sale el valor fila en esa instrucción (If mayor < Cells(fila, 4).Value Then)

2) Podrías hacer un procedimiento donde busque la ultima fila con datos. Tomar el valor en la columna necesaria en tu caso la DE verificas si es un numero (ya que podría no tener datos y la ultima fila llena es el encabezado o titulo)

3) Una vez verificado que es un numero tomas el valor de esa fila y le sumas 1 y se lo escribes al siguiente cliente a registrar.

Ejemplo de lo que te dije arriba

Dim UltimaFilaB As Integer

Dim Valor As Integer

UltimaFilaB = Range("B1048576").End(xlUp).Row

Cells(UltimaFilaB,4).select

Valor=ActiveCell.value

If IsNumeric(Valor) Then

Valor=Valor+1

else

valor=1001

End If

Eso seria el código para determinar el código de los cilentes. Avisanos cualquier cosa

PD: He escrito el código sin verificarlo puedes obtener algunos errores

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas