Alta de registro en tabla Excel a través de un formulario
Para Dante Amor. Hola, gracias por tu inestimable ayuda que me está encaminando a terminar una estructura en la que trabajar con mis formularios, sin tí no lo conseguiría. ¡GRACIAS!
Y aún a riesgo de abusar de tu generosidad te pido por favor si puedes complementar el código del formulario "Agregar_registro" para que funcione como necesito (está en el "formularios dam4.xlsm" y se abre con un botón desde el formulario "consola"):
1.- Cuando añado un registro a través de este formulario y voy a verlo a la tabla de excel, veo que el número introducido en los campos "nº expediente" (columna L) y "Referencia" (columna R) aparecen con un punto verde en la esquina superior izquierda de la celda, con el comentario "El número de celda tiene formato de texto o va precedido por un apóstrofo", y alinea el número a la izquierda (te pongo un pantallazo que muestra lo que te digo).
Y esto me da problemas con alguna fórmula que he utilizado en ocasiones (p.e =MAX(REGISTRO!L:L), ya que no toma en cuenta ese número mientras esté a la izquierda).
2.- Pretendo que en el Textexpediente (textbox que agrega dato en nuevo registro de comuna L) me aparezca al abrir el formulario "Agregar_Registro" el resultado de la fórmula =MAX(REGISTRO!L:L)+1, pero que pueda editarlo para poner finalmente el número que yo quiera. El objetivo es que ese campo se rellene automaticamente en un primer momento, asignando un nuevo número de expediente consecutivo al mayor que se encuentre en la columna L, y lo muestre, pero si no me interesa pueda ponerle cualquier otro número (cuando la información que esté grabando pertenezca a un expediente que ya existe).
Te adjunto el código:
'Alta de un registro Private Sub Botonagregar_registro_Click() 'Declaración de variables ' Dim strTitulo As String Dim Continuar As String Dim TransRowRng As Range Dim NewRow As Integer Dim Limpiar As String ' strTitulo = "Agrega un evento al Registro" ' Continuar = MsgBox("Dar de alta los datos?", vbYesNo + vbExclamation, strTitulo) If Continuar = vbNo Then Exit Sub ' Cuenta = Application.WorksheetFunction.CountIf(Range("R:R"), Me.Textreferencia) ' If Cuenta > 0 Then ' MsgBox "El formulario '" & Me.Textreferencia & "' ya se encuentra registrado", vbExclamation, strTitulo ' Else ' Set TransRowRng = ThisWorkbook.Worksheets("Registro").Cells(1, 1).CurrentRegion NewRow = TransRowRng.Rows.Count + 1 With ThisWorkbook.Worksheets("Registro") .Cells(NewRow, 11).Value = Me.Texttramitador .Cells(NewRow, 12).Value = Me.Textexpediente .Cells(NewRow, 18).Value = Me.Textreferencia .Cells(NewRow, 27).Value = Me.Textinicio .Cells(NewRow, 28).Value = Me.Textfin End With ' MsgBox "Alta exitosa.", vbInformation, strTitulo ' Unload Me End If End Sub
3.- Que el textbox "tramitador", columna K, fuera una lista desplegable en vez de un textbox con tres valores: AS, JG Y MG de los cuales elegiré uno en el momento de agregar un registro.