Hay alguna manera de retener algún dato en un formulario sin tener que recurrir a una celda

Tengo una existencial, hace poco hice un archivo que use puro formulario de visual

Excel solo lo use para almacenar una base de datos, mi duda es:

Si en el textbox1.value lo uso como foliador de numero... Per le digo que el valor que esta en la HOJA1. RANGE("A1") le sume otro 1 cada que ejecute mi macro

Para esto el foliador se incrementera de dependiendo del valor que se encuentra en A1

Hay alguna manera posible de ya no usar la celda A1 de referencia

1 Respuesta

Respuesta
1

Una opción sería que el seguimiento de folios lo hagas desde un archivo externo, ejemplo un TXT (encriptado).

Otra opción es que el folio lo guardes en el Registro de Windows.

ok y como hago eso?

    A modo de esquema, éste es el código para crear y/o escribir en un archivo:
    Open [ruta_archivo] For Output As #1
    Print #1, [texto o nombre_variable]
    Close #1

    Para la lectura:

    Open [ruta_archivo] For Input As #1
    Line Input #1, [nombre_variable]
    Close #1

    Hola me interesa solo que no se como anexarlo a mi código

    Ya que tengo este

    Range("B9").Value = Range("B9").Value + 1

    Los resultados van en el textbox1

    ¿Cómo lo aplico en mi formulario lo que comentas?

    Espero tu ayuda

    Si quieres usar el Registro de Windows

    Sub LeerRegEdit()
        Dim Ws, Tmp
        Set Ws = CreateObject("WScript.Shell")
        Tmp = Ws.RegRead("HKU\S-1-5-21-1659004503-839522115-725345543-1003\Software\Microsoft\Terminal Server Client\Default\MRU1:")
        If Tmp = "" Then
            MsgBox "La llave no existe"
        Else
            MsgBox "El valor de la llave es " & Tmp
        End If
        Set Ws = Nothing
    End Sub
    Sub CambiarValor()
        strKey = "HKU\S-1-5-21-1659004503-839522115-725345543-1003\Software\Microsoft\Terminal Server Client\Default\MRU1:"
        valKey = "255.255.255.255" 'Aqui puedes hacer referencia al valor de una celda
        typKey = "REG_DWORD" 'Aqui te debes de fijar que tipo de variable es en el registro
        CambiarRegEdit strKey, valKey, typKey
    End Sub
    Function CambiarRegEdit(strKey, valKey, typKey)
        Dim objWSH As Object
        Set objWSH = CreateObject("WScript.Shell")
        objWSH.RegWrite strKey, valKey, typKey
        Set objWSH = Nothing
    End Function

    Te dejo éste código, ya lo probé y funciona bien. Adáptalo a tu archivo.

    Sub main()
        Dim nValor As Integer
        nValor = LeerFolio + 1
        MsgBox "El nuevo folio es: " & nValor
        GuardarFolio nValor
    End Sub
    Function LeerFolio() As Integer
      Dim Archivo As String, Numero As String, Origen As Long, n As Integer
      Archivo = "d:\folios.txt" ' <= CAMBIA ESTA LINEA
      Origen = FreeFile
      Open Archivo For Input As #Origen
      Application.ScreenUpdating = False
      Do While Seek(Origen) <= LOF(Origen)
        Line Input #Origen, Numero
      Loop
      Close #Origen
      Numero = Replace(Numero, Chr(254), "")
      Numero = Replace(Numero, Chr(255), "")
      If IsNumeric(Numero) Then LeerFolio = Numero
    End Function
    Sub GuardarFolio(nFolio As Integer)
        Dim Archivo As String, Numero As String, Origen As Long, n As Integer
        Archivo = "d:\folios.txt" ' <= CAMBIA ESTA LINEA
        Kill (Archivo)
        Open Archivo For Output As #1
            Lin = nFolio
        Print #1, Lin
        Close #1
    End Sub

    Añade tu respuesta

    Haz clic para o

    Más respuestas relacionadas