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]
Adjunto | Tamaño |
---|---|
ya_se_excel.xls | 37.5 KB |
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.
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