¿Cómo captar en la BD en la hoja, un código alfanumérico a un TextBox en un form?

3 envíos / 0 nuevos
Último envío
JoaoM
Imagen de JoaoM
Offline
última acción: Hace 1 año 3 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 15/12/2011 - 23:46
Puntos: 3040
¿Cómo captar en la BD en la hoja, un código alfanumérico a un TextBox en un form?

Con Excel 2010 y 2013

Buscando, algo similar encontré pero, no es lo que pretendo, no es justamente lo que he estado buscando

En A existen códigos alfanuméricos seguidos, (correlativos, no aleatorios)

En Excel un formulario con varios controles, 2 de los cuales son TextBox.

Al abrir el form el TextBox4 (Ultimo código) tiene que recibir el ultimo código existente en A y el otro TextBox6 (Próximo código), mostrar el del TextBox4+1.

Uno recibe el ultimo código existente en A, el otro suma 1 del TextBox4.

En el form al pisar el botón Validar datos, tiene que insertar el número del TextBox6 y los restantes datos del Form, en la última celda + 1, +1 que es la 1ª libre de arriba hacia abajo y la última libre de abajo hacia arriba

¿Algo similar a esto?

[code]Ult = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select[/code]

AdjuntoTamaño
Office spreadsheet icon ya_se_excel.xls37.5 KB

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 días 8 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
máximo

Hola Joao:

Como tus numeraciones correlativas son número, puedes utilizar la función Máximo para calcular cuál es la última.

Puedes emplear la función máximo dentro del código mediante. Esta función no está en el VBA de Excel, imagino que porque está entre las funciones de la hoja de cálculo a las que se puede acceder desde VBA mediante WorkSheetFunction.

Así que tu valor máximo existente, el que quieres poner en el textbox4 lo puedes calcular así: 

UltimoValorExistente = Application.WorksheetFunction.Max(Worksheets("Hoja1").Range("A:A"))

ahora necesitamos la primera celda libre para anotar cosas

como tienes datos en todas las celdas desde la A1, yo contaría desde ahí.

sería desde la celda A1, hacia abajo End(xlDown) , y luego una celda más abajo Offset(1,0)

Worksheets("Hoja1").Range("A1").End(xlDown).Offset(1, 0)

Esta sería la celda vacía en la columna A a continuación de los datos existentes. con esta celda localizada ya puedes utilizar su número de fila o referirte a las que están a su derecha para anotar cosas, o lo que se te ocurra.

No sé si con este par de ideas respondo a tu duda.

 

 

------
Ya sé Excel, pero necesito más.

JoaoM
Imagen de JoaoM
Offline
última acción: Hace 1 año 3 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntos
alta: 15/12/2011 - 23:46
Puntos: 3040
El titullo esta mal, deveria

Hola pacomegia, salu2

El titullo esta mal, deveria ser Numericos y no alfanumericos

Lo resolvi así, un poco tipo indio (como se dice por acá) a como me venga.

Si con esto te provoca algo mas bonito y bien estructurado, pues bien venido sea ese codigo

Para el arranque del form

Private Sub UserForm_Initialize()
'ultimo valor según col A para el TextBox4 y el 6
TextBox4 = Format(Range("A" & Rows.Count).End(xlUp).Value, "0000000")
TextBox6 = Format(Val(TextBox4) + 1, "0000000")

'Demas codigo si se necesita
End Sub

Para el boton Validar datos

Private Sub CommandButton1_Click()

'Aqui codigo para Validacion de datos en los TextBox y combos

Sheets(1).Select
    ActiveSheet.Range("A1").End(xlDown).Offset(1, 0).Select

'actualiza los textbox
TextBox4 = Format(Range("A" & Rows.Count).End(xlUp).Value, "0000000")
TextBox6 = Format(Val(TextBox4) + 1, "0000000")
End Sub

Te doy las gracias por tu solucion al tema

Solucionado