¿Cómo mostrar en un textbox_id de mi formulario el siguiente id a utilizar? En visual de excel 2010

Tengo un formulario en visual donde ingreso datos de producto, estos son: Código, Descripción, unidad, marca, precio, etc.

Encontré la forma de ingresar los datos en las celdas siguientes, sin ningún problema con este código:

Private Sub CmdAceptar_Click()
Application.Goto ActiveWorkbook.Sheets("productos").Cells(1) 'MÉTODO PARA UTILIZAR LA HOJA PRODUCTOS
'datos no vacíos
If Me.TextClave.Text = "" Then MsgBox ("Clave no puede estar vacía"): Exit Sub
If Me.TextDescripcion.Text = "" Then MsgBox ("Descripción no puede estar vacía"): Exit Sub
If Me.TextUnidadMedida.Text = "" Then MsgBox ("Unidad de medida no puede estar vacía"): Exit Sub
If Me.TextMarca.Text = "" Then MsgBox ("Marca no puede estar vacía"): Exit Sub
If Me.TextUnidadMedida.Text = "" Then MsgBox ("Unidad de medida no puede estar vacía"): Exit Sub
'NUEVO CÓDIGO PARA LA INSERCIÓN DE DATOS EN LA HOJA DE EXCEL
'VARIABLES PARA ALMACENAR LOS DATOS
Dim CLAVE As String
Dim DESCRIPCIÓN As String
Dim UNIDADMEDIDA As String
Dim MARCA As String
Dim PRECIO As String
'VARIABLE PARA GUARDAR EL REGISTRO DE LA ULTIMA FILA
Dim ULTIMAFILAS As Double
'GUARDAR LOS DATOS DE LOS .TEXT EN VARIABLES
CLAVE = TextClave.Value
DESCRIPCIÓN = TextDescripcion.Value
UNIDADMEDIDA = TextUnidadMedida.Value
MARCA = TextMarca.Value
PRECIO = TextPrecio.Value
'HACEMOS QUE LA CELDA INCREMENTE DE INTENTAR CON LA VARIABLE ULTIMAFILA
ULTIMAFILAS = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
Cells(ULTIMAFILAS + 1, 1) = CLAVE
Cells(ULTIMAFILAS + 1, 2) = DESCRIPCIÓN
Cells(ULTIMAFILAS + 1, 3) = UNIDADMEDIDA
Cells(ULTIMAFILAS + 1, 4) = MARCA
Cells(ULTIMAFILAS + 1, 9) = PRECIO
'limpiamos formulario para la siguiente captura
Me.TextClave.Text = ""
Me.TextDescripcion.Text = ""
Me.TextUnidadMedida.Text = ""
Me.TextMarca.Text = ""
Me.TextPrecio.Text = ""
'ponemos el cursor siempre en el primer campo
Me.TextClave.SetFocus
End Sub
Private Sub CmdCancelar_Click()
'botón cancelar que nos borra todo
Me.TextClave.Text = ""
Me.TextDescripcion.Text = ""
Me.TextUnidadMedida.Text = ""
Me.TextMarca.Text = ""
Me.TextPrecio.Text = ""
End Sub

Pero ya después de haber ingresado mas de 200 productos quiero que el textClave me muestre ya el 201, después de ingresarlo, me muestre el 202 y así consecutivamente.

Traté de solucionarlo con un botón a lado del textCodigo, un botón llamado CommandButtonUltimoCodigo_Click() que al picarle me arroje de la celda a el ultimo valor + 1, pero me imprime lo que puse en la celda uno que es "código" que es el título que le puse a esa celda y ya después es puro número.

Private Sub CommandButtonUltimoCodigo_Click()
Cells(a1 + 1, 1).Select
TextClave.Value = ActiveCell
a1 = ActiveCell.Row
End Sub

Agradecería mucho tu ayuda o si me pasas un tutoríal de donde encontrarlo te lo agradecería.

1 Respuesta

Respuesta
1

Tu problema reside en la forma que encuentras el numero de fila donde va a realizarse la inserción del nuevo dato, la instrucción que usas: ActiveSheet. UsedRange. Rows. Count te va a devolver un valor FIJO, dependiendo del numero de filas que tengas en el rango seleccionado, en este caso parece que tiene 200 filas, para que esto no ocurra te recomiendo que cambies la forma de referirte a la ultima fila de tu rango de la siguiente forma:

1.- Te coloques en la primera celda de tu rango, suponiendo que esta celda fuera b6 escribirías:range("b6").select.

2.- Después muévete al final de la columna con: Selection.End(xlDown).Select y por ultimo

3.- Muévete a la siguiente fila con:ActiveCell.Offset(1, 0).Select.

En este punto estas una celda abajo del ultimo dato del rango y aquí ya puedes insertar los datos de tu textbox en las celdas.

No se si me explique bien o si entendí correctamente tu pregunta, pero cualquier duda comunícamela y si se como ayudarte lo haré con gusto. Bye

gracias lo solucione con esto:

Puse un botón que me muestra la ultima fila:

Dim n As Long
Application.Goto ActiveWorkbook.Sheets("productos").Cells(1)
countult = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox countult
Cells(Rows.Count, 1).End(xlUp).Select

y ya sabe el usuario que número es el siguiente a ingresar en el texbox.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas