Alta de clientes que sugiere un ID libre
Para Dante Amor
Hola hola!
Tengo un formulario para crear clientes, a cada cliente tengo que asignarle un ID numérico.
Cuando un cliente se da de baja borro manualmente todos sus datos incluido el ID, por lo que ese ID vuelve a quedar libre.
Me gustaría que cuando vaya a crear un nuevo cliente, la macro busque en la tabla el primer ID que esté libre y lo sugiera o asigne automáticamente al nuevo cliente.
Ésta es la tabla para que se vea claro los ID´s que quedan libres, en este caso al crear un nuevo cliente tendría que asignar o sugerir el primero que está libre de menor a mayor, es decir el "02":
Este es el formulario:
Y este el código del botón GUARDAR:
rem Botón guardar Sub GuardarInformacion() rem formulario para introducir datos en una tabla Rem Declaracion de variables Dim contFila As Long 'la variable serà el largo de la fila Dim hoja As Worksheet 'define la variable como hoja Set hoja = Worksheets(1) 'declara esta hoja como la primera del libro. Rem Verifica que est_n todos los campos rellenos e impide continuar. If Trim$(BoxID.Text) = Empty Or Trim$(BoxNombre.Text) = Empty Or Trim$(BoxCentro.Text) = Empty Or Trim$(BoxDireccion.Text) = Empty Or Trim$(BoxNif.Text) = Empty Or Trim$(BoxTelefono.Text) = Empty Or Trim$(BoxEmail.Text) = Empty Then MsgBox "Por favor ingresa todos los datos!", vbCritical, "Datos Incompletos" Exit Sub End If Rem Avanza a la siguiente celda a lo largo de la fila para ingresar los datos contFila = hoja.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row hoja.Cells(contFila, 1).Value = Me.BoxID.Value hoja.Cells(contFila, 2).Value = Me.BoxNombre.Value hoja.Cells(contFila, 3).Value = Me.BoxCentro.Value hoja.Cells(contFila, 4).Value = Me.BoxDireccion.Value hoja.Cells(contFila, 5).Value = Me.BoxNif.Value hoja.Cells(contFila, 6).Value = Me.BoxTelefono.Value hoja.Cells(contFila, 7).Value = Me.BoxEmail.Value Rem Borra los datos de los campos Me.BoxID.Value = "" Me.BoxNombre.Value = "" Me.BoxCentro.Value = "" Me.BoxDireccion.Value = "" Me.BoxNif.Value = "" Me.BoxTelefono.Value = "" Me.BoxEmail.Value = "" Me.BoxID.SetFocus End Sub
Las anotaciones '(ignoradas) las pongo porque estoy aprendiendo y así puedo orientarme.
1 respuesta
Respuesta de Dante Amor
1