Jump to content

Guardar datos de un formulario a un a otro libro


Go to solution Solved by Puche,

Recommended Posts

Hola tod@s!!!

me gustaría saber como puedo capturar los datos de un formulario a un otro libro (que no sea el libro que contiene la macro con el form).

La idea es que varias personas puedan ir criando datos desde formularios "personales" y que estos datos generados por todos sean grabados  una única hoja. ahora mismo tengo el formulario funcionando, pero cada usuario guarda en "su archivo" la información. :(

les agradezco de antemano toda la ayuda!!!

Link to comment
Share on other sites

Hola @ffernando,

A la espera de que te pueda ayudar alguien con mas conocimientos que yo, a ver si te sirve.

Primero de todo, debes tener los 2 archivos excel en una misma carpeta.  Uno con las macros y otro con la "Base de datos"

En el archivo con macros debes crear 2 procesos:

Function IsFileOpen(FileName As String)
    Dim iFilenum As Long
    Dim iErr As Long

    On Error Resume Next
    iFilenum = FreeFile()
    Open FileName For Input Lock Read As #iFilenum
    Close iFilenum
    iErr = Err
    On Error GoTo 0

    Select Case iErr
    Case 0:    IsFileOpen = False
    Case 70:   IsFileOpen = True
    Case Else: Error iErr
    End Select

End Function

y este otro 

Sub LiberarBarra()

Application.StatusBar = False

End Sub

estos 2 procesos los debe tener en un modulo.

Por último debes poner el siguiente código en el botón que hayas asignado para realizar la entrada de datos.

Dim objExcel As Application
Dim RutaArchivo As String
Dim Texto As String
Dim Fila As Integer
Dim Final As Integer


Texto = "Guardando los datos"
Application.StatusBar = Texto



Set objExcel = CreateObject("Excel.Application")

With objExcel

    
    RutaArchivo = ThisWorkbook.Path & "\NOMBRE DEL LIBRO QUE ALMACENARA LOS DATOS.xlsx"

    If IsFileOpen(RutaArchivo) Then
    MsgBox "El libro debe estar cerrado para proceder."
    Exit Sub
    Else
        
        With .Workbooks.Open(RutaArchivo)
        
            For Fila = 2 To 1000
                If .Worksheets("NOMBRE DE TU HOJA DESTINO").Cells(Fila, 1) = "" Then
                    Final = Fila
                    Exit For
                End If
            Next
             
             COPIA ESTA LINEAS PARA CADA UNO DE TUS BOX PARA REALIZAR LA ENTRADA DE DATOS
            .Worksheets("NOMBRE DE TU HOJA DESTINO").Cells(Final, 1) = ME.TXT_NOMBRE DE TU BOX
            .Worksheets("NOMBRE DE TU HOJA DESTINO").Cells(Final, 2) = ME.TXT_NOMBRE DE TU BOX
          
        COPIA ESTA LINEAS PARA CADA UNO DE TUS BOX PARA REALIZAR LA ENTRADA DE DATOS    
        ME.TXT_NOMBRE DE TU BOX.Value = Empty
        
       
        
        .Close SaveChanges:=True
        End With
    End If
    
    
    
End With

Call LiberarBarra
MsgBox "Datos guardados correctamente!"

End Sub

Con esto debería de funcionarte.

De todos modos, si compartes el archivo será mucho mejor.

Saludos,

Edited by Puche
Link to comment
Share on other sites

Hola @Puche!! Muchísimas gracias por tan rápida respuesta.

Perdón por la ignorancia, pero no he encontrado la manera de compartir el los archivos contigo. Si no es mucho pedir, podrías explicarme y te los envío? De todas formas intentaré poner el código que has pasado en el botón Agregar de mi formulario.

Una vez mas, muchas gracias por tu ayuda!!!

Un saludo!

Link to comment
Share on other sites

Perfecto!!!! Muchas gracias!!! Lo único que buscaré después es como Editar y poder hacer la búsqueda en el libro REGISTRO SHAREPOINT1 en vez de en la hoja DB del libro Registros Pricing_v.3. Todo lo demás está perfecto!

Muchísimas gracias!!! 

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

Privacy Policy