Espero me ayudes, tengo varios días de buscar la respuesta, de antemano GRACIAS. Tengo creado un UserForm en Visual Excel, que contiene campos de Datos, Nombre, ApePaterno, ApeMaterno, etc, con botones de Ingresos, Consultas, Grabar, Imprimir, etc. Actualmente estos se ingresan a una hoja de Excel pero ahora deseo que estos datos ya no queden registrados en la hoja. ¿Cuál es la rutina para que estos puedan ejecutarse al igual que excel, pero desde un archi de texto?
Tiendo la facilidad de las hojas de Excel, no se por que usar un TXT, pero cada quien tiene sus razones, solo que no es solo una rutina, sino varias y controlar completamente no es poco, estoy suponiendo que no tienes problemas con el manejo del código, en este, asumo lo siguiente... Un UserForm Un modulo de código El UserForm tiene tres cuadros de texto y tres botones de comando txtClave txtNombre txtTel cmdAgregar cmdSiguiente cmdAnterior Este es el código del Modulo Option Explicit Type Contacto Clave As Integer Nombre As String * 50 Tel As String * 15 End Type Y este el el codigo del UserForm Option Explicit Dim strRuta As String Dim Amigos() As Contacto Dim NumReg As Long Dim TamReg As Integer Dim Pos As Integer Private Sub cmdAgregar_Click() NumReg = NumReg + 1 ReDim Preserve Amigos(NumReg - 1) Amigos(NumReg - 1).Clave = Trim(txtClave.Text) Amigos(NumReg - 1).Nombre = Trim(txtNombre.Text) Amigos(NumReg - 1).Tel = Trim(txtTel.Text) VaciaCajas txtClave.SetFocus End Sub Private Sub cmdAnterior_Click() Pos = Pos - 1 If Pos = 0 Then Pos = 1 MostrarRegistro Pos End Sub Private Sub cmdSiguiente_Click() Pos = Pos + 1 If Pos > NumReg Then Pos = NumReg MostrarRegistro Pos End Sub Private Sub UserForm_Initialize() Dim TamArchivo As Long Dim Libre As Integer Dim co1 As Integer strRuta = ThisWorkbook.Path & "\Datos.txt" If Len(Dir(strRuta)) > 0 Then Libre = FreeFile TamReg = Len(Amigos(0)) Open strRuta For Random As Libre Len = TamReg TamArchivo = LOF(Libre) NumReg = TamArchivo \ TamReg ReDim Amigos(NumReg - 1) For co1 = 0 To NumReg - 1 Get #Libre, co1 + 1, Amigos(co1) Next co1 Close #Libre Pos = 1 MostrarRegistro Pos Else MsgBox "NO existe archivos de datos" End If End Sub Private Sub UserForm_Terminate() Dim Libre As Integer Dim co1 As Integer If NumReg > 0 Then Libre = FreeFile Open strRuta For Random As Libre Len = TamReg For co1 = 0 To NumReg - 1 Put #Libre, co1 + 1, Amigos(co1) Next co1 Close #Libre Else MsgBox "NO hay datos para guardar" End If End Sub Private Sub VaciaCajas() txtClave.Text = "" txtNombre.Text = "" txtTel.Text = "" End Sub Private Sub MostrarRegistro(ByVal Numero As Integer) txtClave.Text = Amigos(Numero - 1).Clave txtNombre.Text = Trim(Amigos(Numero - 1).Nombre) txtTel.Text = Trim(Amigos(Numero - 1).Tel) End Sub Con este código puedes agregar registros a un archivo de texto, moverte atrás y adelante, faltaría implementar BUSCAR, ELIMINAR, EDITAR, pero esa es tu tarea...