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

  • Crear macros Excel

  • Posts

    • Si me haces el favor de enviarme la macro para  intentarlo te lo agradeceré enormemente... sirve que aprendo también un poco. 
    • Buenas noches a todos los Foristas. Hola JSD, eso está PERFECTO, de hecho es más de lo que tenía pensado. Verdaderamente ustedes saben y yo trato de aprender cada día. Qué más puedo decir? Gracias mil por todo este  trabajo. Otra cosa, descuide, que si yo acudo a ustedes es porque he agotado los pocos conocimientos que tengo. Realmente sólo requiero de un ligero "empujón", un ejemplo de la duda que tengo para yo continuar con el trabajo, porque de esa manera aprendo, fijándome en el código, analizándolo y después lo desarrollo a mis necesidades. No tengo palabras para agradecerle el gesto y el trabajo realizado. Estoy en deuda con usted y porqué no, con otros miembros de este Maravilloso FORO. Doy por cerrado el tema. Un abrazo a todos y en especial a usted JSD por su paciencia y dedicación para conmigo. Nunca lo olvidaré, por eso dije en una ocasión que lo consideraba Mi Amigo, aun cuando ni siquiera nos conocemos, pero es que su comportamiento, su manera de enfocar los temas, su actitud siempre positiva y su altruismo tienen consecuencia y esa consecuencia es  decirle AMIGO. Salud y bendiciones Un abrazo. Pino
    • 1. Tu tienes forma de convertirlos a TXT? 2. Si comprimes todos los archivos RTF a RAR o ZIP  cuanto pesan Te lo pregunto porque la macro me funcion de TXT a Excel, no e podido hacerlo directamente desde RTF.  
    • Es correcto!! Esa es la idea.
    • Cordial saludo Estimados tengan un excelente día, favor su ayuda con lo siguiente: La idea aquí es sacar la variación de cada día sobre el tiempo que se gastó cada usuario: Ejemplo, el día domingo en la semana 42 el usuario gasto en cierta actividad 16 horas y 22 minutos, mientras que el otro domingo duro 11 horas y 46 minutos, entonces es sacar la variación, el resultado es -28%. Ayuda como lo logro en la tabla dinámica. De antemano muchas gracias, Dios los bendiga Saludos,    Variaciones.xlsm
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy